{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# aistudio介绍与第三方依赖安装"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data17968\r\n"
     ]
    }
   ],
   "source": [
    "# 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原\n",
    "# View dataset directory. \n",
    "# This directory will be recovered automatically after resetting environment. \n",
    "!ls /home/aistudio/data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 查看工作区文件, 该目录下的变更将会持久保存. 请及时清理不必要的文件, 避免加载过慢.\n",
    "# View personal work directory. \n",
    "# All changes under this directory will be kept even after reset. \n",
    "# Please clean unnecessary files in time to speed up environment loading. \n",
    "!ls /home/aistudio/work"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Collecting beautifulsoup4\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/69/bf/f0f194d3379d3f3347478bd267f754fc68c11cbf2fe302a6ab69447b1417/beautifulsoup4-4.10.0-py3-none-any.whl (97 kB)\n",
      "     |████████████████████████████████| 97 kB 4.8 MB/s             \n",
      "\u001b[?25hCollecting soupsieve>1.2\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/72/a6/fd01694427f1c3fcadfdc5f1de901b813b9ac756f0806ef470cfed1de281/soupsieve-2.3.1-py3-none-any.whl (37 kB)\n",
      "Installing collected packages: soupsieve, beautifulsoup4\n",
      "Successfully installed beautifulsoup4-4.10.0 soupsieve-2.3.1\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "# 如果需要进行持久化安装, 需要使用持久化路径, 如下方代码示例:\n",
    "# If a persistence installation is required, \n",
    "# you need to use the persistence path as the following: \n",
    "!mkdir /home/aistudio/external-libraries\n",
    "!pip install beautifulsoup4 -t /home/aistudio/external-libraries\n",
    "!pip install imgaug -t /home/aistudio/external-libraries\n",
    "!pip install pyclipper -t /home/aistudio/external-libraries\n",
    "!pip install lmdb -t /home/aistudio/external-libraries\n",
    "!pip install Levenshtein -t /home/aistudio/external-libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: \n",
    "# Also add the following code, \n",
    "# so that every time the environment (kernel) starts, \n",
    "# just run the following code: \n",
    "import sys \n",
    "sys.path.append('/home/aistudio/external-libraries')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "请点击[此处](https://ai.baidu.com/docs#/AIStudio_Project_Notebook/a38e5576)查看本环境基本用法.  <br>\n",
    "Please click [here ](https://ai.baidu.com/docs#/AIStudio_Project_Notebook/a38e5576) for more detailed instructions. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# CCPD数据 车牌识别\n",
    "\n",
    "参考：https://aistudio.baidu.com/aistudio/projectdetail/739559 这个里面paddle为1.8的版本\n",
    " \n",
    "参考：https://aistudio.baidu.com/aistudio/projectdetail/2474969?qq-pf-to=pcqq.c2c&shared=1 这个里面代码无法正常运行\n",
    "\n",
    "想着先快速实现车牌识别的过程，后期再替换模型，结合具体的应用场景等\n",
    "再使用过程中，发现该项目无法正常运行，顾修改部分代码，直到可以执行"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "车牌识别即识别车牌上的文字信息，属于光学字符识别(OCR)的一项子任务\n",
    "\n",
    "车牌识别技术目前已广泛应用于例如停车场、收费站等等交通设施中，提供高效便捷的车辆认证的服务\n",
    "\n",
    "OCR一般分为两个步骤\n",
    "        检测图片中的文本位置\n",
    "        识别其中的文本信息\n",
    "\n",
    "车牌识别的一般流程如下图：\n",
    "\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/c3589268f0c34e918720aa79cc7640233ca7cc48dc014b17be561c9281f71677)\n",
    "\n",
    "\n",
    "PaddleOCR是最近Paddle开源的一个OCR算法套件，其中包含了各种主流的检测和识别算法，如DB、CRNN等等，不仅效果出色，而且使用上也非常方便\n",
    "本次就使用PaddleOCR来开发一个车牌识别算法\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 1.数据集清洗与介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "数据集介绍\n",
    "CCPD车牌数据集是采集人员在合肥停车场采集、手工标注得来，采集时间在早7:30到晚10:00之间。且拍摄车牌照片的环境复杂多变，包括雨天、雪天、倾斜、模糊等。CCPD数据集包含将近30万张图片、图片尺寸为720x1160x3，共包含8种类型图片，每种类型、数量及类型说明如下表：\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/982b2403244c478f80ae2fa2e4481f5e7188b09e1a98419cb0687928d9ffb793)\n",
    "\n",
    "\n",
    "注：图2来源于开源车牌数据集CCPD介绍  \n",
    "CCPD数据集中每张图像的名称包含了标注信息，例如图片名称为\"025-95_113-154&383_386&473-386&473_177&454_154&383_363&402-0_0_22_27_27_33_16-37-15.jpg\"，每个名称可以通过分隔符'-'分为几部分，每部分解释:\n",
    "\n",
    "025：车牌区域占整个画面的比例；\n",
    "95_113： 车牌水平和垂直角度, 水平95°, 竖直113°\n",
    "154&383_386&473：标注框左上、右下坐标，左上(154, 383), 右下(386, 473)\n",
    "386&473_177&454_154&383_363&402：标注框四个角点坐标，顺序为右下、左下、左上、右上\n",
    "0_0_22_27_27_33_16：车牌号码映射关系如下: 第一个0为省份 对应省份字典provinces中的'皖',；第二个0是该车所在地的地市一级代码，对应地市一级代码字典alphabets的'A'；后5位为字母和文字, 查看车牌号ads字典，如22为Y，27为3，33为9，16为S，最终车牌号码为皖AY339S\n",
    "provinces = [\"皖\", \"沪\", \"津\", \"渝\", \"冀\", \"晋\", \"蒙\", \"辽\", \"吉\", \"黑\", \"苏\", \"浙\", \"京\", \"闽\", \"赣\", \"鲁\", \"豫\", \"鄂\", \"湘\", \"粤\", \"桂\", \"琼\", \"川\", \"贵\", \"云\", \"藏\", \"陕\", \"甘\", \"青\", \"宁\", \"新\"]\n",
    "\n",
    "alphabets = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W','X', 'Y', 'Z']\n",
    "\n",
    "ads = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X','Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']  \n",
    "本实验我们只使用正常车牌即ccpd_base的数据进行训练。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mkdir: cannot create directory ‘dataset’: File exists\n",
      "replace dataset/CCPD/ccpd_base/0053-1_1-333&478_443&519-443&519_333&516_333&478_443&481-0_0_9_32_32_29_19-74-127.jpg? [y]es, [n]o, [A]ll, [N]one, [r]ename: ^C\n",
      "/home/aistudio\n"
     ]
    }
   ],
   "source": [
    "# 解压数据集\r\n",
    "!mkdir dataset\r\n",
    "!unzip -q /home/aistudio/data/data17968/CCPD2019.zip -d dataset/CCPD\r\n",
    "%cd ~"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dataset/CCPD\n",
      "├── ccpd_base\n",
      "├── ccpd_challenge\n",
      "├── ccpd_db\n",
      "├── ccpd_fn\n",
      "├── ccpd_rotate\n",
      "├── ccpd_tilt\n",
      "└── ccpd_weather\n",
      "\n",
      "7 directories\n"
     ]
    }
   ],
   "source": [
    "# 查看目录结构\r\n",
    "# tree命令查看目录结构\r\n",
    "! tree dataset/CCPD -d\r\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/font_manager.py:1331: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n",
      "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/tight_layout.py:198: UserWarning: tight_layout cannot make axes width small enough to accommodate all axes decorations\n",
      "  warnings.warn('tight_layout cannot make axes width small enough '\n"
     ]
    },
    {
     "data": {
      "image/png": "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8d8bY8zXfD7cbYx59hObehEReTpSECciIjUZY8LA14GzgMOB84wxhz+xqdrvnm+tfWbg9+A+BPzBWnsw8Af/GVweHOz/LgC++binVEREnvYUxImISD3HAZustQ9Za6eBy4Czn+A0PdbOBr7vh78P/F3g+0us82eg2xiz6IlIoIiIPH0piBMRkXqWANsCn7f7754qLHC1MeZ2Y8wF/rsF1tpdfng3sMAPP9XzQkREmkDkiU6AiIjIE+wka+0OY8x84BpjzP3BkdZaa4zR7/GIiMiThu7EiYhIPTuAZYHPS/13TwnW2h3+/wDwC9zjo3tKj0n6/wN+8qd0XoiISHNQECciIvXcChxsjDnQGNMCvAq44glO035hjGk3xiRKw8AZwDrc9r3BT/YG4Fd++Arg9b6XyuOB8cBjlyIiIo8LPU4pIiI1WWvzxph3Ar8DwsBF1tr1T3Cy9pcFwC+MMeCOiT+01l5ljLkVuNwY8xbgYeDv/fRXAi8CNgEp4E2Pf5JFROTpzlirx/xFRERERESahR6nFBERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmoiBORERERESkiSiIExERERERaSIK4kRERERERJqIgjgREREREZEmss9BnDFmizHm9MciMY8VY8xrjDFXP07rssaYVX74W8aYj+6n5V5vjDl/fyxLHlvGmBW+HkTqTKcyFREREXmK2Z8xQDUNBXHGmMXGmO2PZUIeiUbTZa39gbX2jAaWd7Ex5tP7J3VgrX27tfZTjU5vjHmuMeZPj3a9j1egXW09xpjzjDE/9MMtxpiPG2MeMMZM+XkuMsasCEz/QmPMDcaYSWPMoDHmj8aYl/pxbzTGFIwxSWPMhDFmrTHmJX7cqcaYoh+XNMZsN8Zcbow5tkKa9kvePhUE9xtjTK8x5he+bB42xry6yjwXBS9Q+O8OM8Zca4wZN8ZsMsacExhXCmSTgb+qjZlxPmKM2erL+TJjTGeD23O6MeYOvw3bjTF/X2PaLxhjtvl1PGyM+XBgXJ8x5mZjzLAxZswYc4sx5sTA+FcZYzb47R0wxny/PI3GmPcbY3b5+a8zxrSVjQ/W59LfqX7cfGPM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\n",
      "text/plain": [
       "<Figure size 576x576 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 样本的可视化展示等\r\n",
    "import cv2\r\n",
    "import os\r\n",
    "import matplotlib.pyplot as plt\r\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\r\n",
    "plt.rcParams['axes.unicode_minus'] = False\r\n",
    "%matplotlib inline\r\n",
    "\r\n",
    "ccpd_path = \"/home/aistudio/dataset/CCPD/ccpd_base/\"\r\n",
    "car_path_1 = \"0280-4_22-276&545_513&644-513&644_303&628_276&545_486&561-0_0_1_25_0_24_33-169-87.jpg\"\r\n",
    "car_path_2 = \"0495-9_6-333&523_600&678-600&635_339&678_333&566_594&523-0_0_26_24_26_9_33-147-180.jpg\"\r\n",
    "\r\n",
    "image_path_list = [os.path.join(ccpd_path,car_path_1), os.path.join(ccpd_path,car_path_2)]\r\n",
    "\r\n",
    "plt.figure(figsize=(8, 8))\r\n",
    "for i in range(len(image_path_list)):\r\n",
    "    plt.subplot(len(image_path_list), 2, i*2+1)\r\n",
    "    plt.title(image_path_list[i])\r\n",
    "    plt.imshow(cv2.imread(image_path_list[i])[:, :, ::-1])\r\n",
    "\r\n",
    "plt.tight_layout()\r\n",
    "plt.show()\r\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "##  2.图像统计分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 计算图像数据整体均值和方差\r\n",
    "import glob\r\n",
    "import numpy as np\r\n",
    "\r\n",
    "\r\n",
    "def get_mean_std(image_path_list):\r\n",
    "    print('Total images:', len(image_path_list))\r\n",
    "    max_val, min_val = np.zeros(3), np.ones(3) * 255\r\n",
    "    mean, std = np.zeros(3), np.zeros(3)\r\n",
    "    for image_path in image_path_list:\r\n",
    "        image = cv2.imread(image_path)\r\n",
    "        for c in range(3):\r\n",
    "            mean[c] += image[:, :, c].mean()\r\n",
    "            std[c] += image[:, :, c].std()\r\n",
    "            max_val[c] = max(max_val[c], image[:, :, c].max())\r\n",
    "            min_val[c] = min(min_val[c], image[:, :, c].min())\r\n",
    "\r\n",
    "    mean /= len(image_path_list)\r\n",
    "    std /= len(image_path_list)\r\n",
    "\r\n",
    "    mean /= max_val - min_val\r\n",
    "    std /= max_val - min_val\r\n",
    "\r\n",
    "    return mean, std\r\n",
    "\r\n",
    "\r\n",
    "# mean, std = get_mean_std(glob.glob(ccpd_path+'/*.jpg'))\r\n",
    "# print('mean:', mean)\r\n",
    "# print('std:', std)\r\n",
    "# 因为计算时间太长，就选择一个断点的数据集，手动中断执行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total images: 2\n",
      "mean: [0.62137643 0.58955898 0.52290069]\n",
      "std: [0.25919149 0.25739215 0.27425101]\n"
     ]
    }
   ],
   "source": [
    "# 计算两个小点的图像数据\r\n",
    "mean, std = get_mean_std(image_path_list)\r\n",
    "print('mean:', mean)\r\n",
    "print('std:', std)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 3.数据集预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import os\r\n",
    "import os.path as osp\r\n",
    "import cv2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import os\r\n",
    "import os.path as osp\r\n",
    "import cv2\r\n",
    "\r\n",
    "ads = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', \r\n",
    "              'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X','Y', 'Z', \r\n",
    "              '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']\r\n",
    "\r\n",
    "provinces = [\"皖\", \"沪\", \"津\", \"渝\", \"冀\", \"晋\", \"蒙\", \"辽\", \"吉\", \"黑\", \"苏\", \r\n",
    "            \"浙\", \"京\", \"闽\", \"赣\", \"鲁\", \"豫\", \"鄂\", \"湘\", \"粤\", \"桂\", \"琼\", \r\n",
    "            \"川\", \"贵\", \"云\", \"藏\", \"陕\", \"甘\", \"青\", \"宁\", \"新\"]\r\n",
    "\r\n",
    "# 转换检测数据\r\n",
    "train_det = open('dataset/train_det.txt', 'w', encoding='UTF-8')\r\n",
    "dev_det = open('dataset/dev_det.txt', 'w', encoding='UTF-8')\r\n",
    "\r\n",
    "# 转换识别数据\r\n",
    "if not osp.exists('dataset/img'):\r\n",
    "    os.mkdir('dataset/img')\r\n",
    "train_rec = open('dataset/train_rec.txt', 'w', encoding='UTF-8')\r\n",
    "dev_rec = open('dataset/dev_rec.txt', 'w', encoding='UTF-8')\r\n",
    "\r\n",
    "count = 0\r\n",
    "# 总样本数\r\n",
    "total_num = len(os.listdir('dataset/CCPD/ccpd_base'))\r\n",
    "# 训练样本数\r\n",
    "train_num = int(total_num*0.8)\r\n",
    "for item in os.listdir('dataset/CCPD/ccpd_base'):\r\n",
    "    path = 'dataset/CCPD/ccpd_base/'+item\r\n",
    "    # 0280-4_22-276&545_513&644-513&644_303&628_276&545_486&561-0_0_1_25_0_24_33-169-87.jpg\r\n",
    "    _, _, bboxs, points, labels, _, _ = item.split('-')\r\n",
    "    # 0280,4_22,\r\n",
    "    # bboxs = 276&545_513&644,\r\n",
    "    # points= 513&644_303&628_276&545_486&561 右下、左下、左上、右上\r\n",
    "    # 0_0_1_25_0_24_33\r\n",
    "    #车牌号码映射关系如下: 第一个0为省份 对应省份字典provinces中的'皖',；\r\n",
    "    #第二个0是该车所在地的地市一级代码，对应地市一级代码字典alphabets的'A'；\r\n",
    "    #后5位为字母和文字, 查看车牌号ads字典，如22为Y，27为3，33为9，16为S，\r\n",
    "    #最终车牌号码为皖AY339S \r\n",
    "    #provinces = [\"皖\", \"沪\", \"津\", \"渝\", \"冀\", \"晋\", \"蒙\", \"辽\", \"吉\", \"黑\", \"苏\", \"浙\", \"京\", \"闽\", \"赣\", \"鲁\", \"豫\", \"鄂\", \"湘\", \"粤\", \"桂\", \"琼\", \"川\", \"贵\", \"云\", \"藏\", \"陕\", \"甘\", \"青\", \"宁\", \"新\"]\r\n",
    "    # alphabets = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W','X', 'Y', 'Z']\r\n",
    "    # ads = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X','Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']\r\n",
    "    \r\n",
    "    # bboxs\r\n",
    "    bboxs = bboxs.split('_')\r\n",
    "    x1, y1 = bboxs[0].split('&')\r\n",
    "    x2, y2 = bboxs[1].split('&')\r\n",
    "    bboxs = [int(coord) for coord in [x1, y1, x2, y2]] # [276, 545, 513, 644]\r\n",
    "\r\n",
    "    points = points.split('_')\r\n",
    "    points = [point.split('&') for point in points]\r\n",
    "    points_ = points[-2:]+points[:2] # [['276', '545'], ['486', '561'], ['513', '644'], ['303', '628']]\r\n",
    "    points = []\r\n",
    "    for point in points_:\r\n",
    "        points.append([int(_) for _ in point])\r\n",
    "    # [['276', '545'], ['486', '561'], ['513', '644'], ['303', '628']]\r\n",
    "\r\n",
    "    labels = labels.split('_')\r\n",
    "    prov = provinces[int(labels[0])] # prov为省份简写\r\n",
    "    plate_number = [ads[int(label)] for label in labels[1:]] # 车牌号\r\n",
    "    labels = prov+''.join(plate_number) # 将省份与车牌号拼接起来\r\n",
    "        \r\n",
    "    # 获取检测训练检测框位置\r\n",
    "    line_det = path+'\\t'+'[{\"transcription\": \"%s\", \"points\": %s}]' % (labels, str(points))\r\n",
    "    line_det = line_det[:]+'\\n'\r\n",
    "\r\n",
    "    # 获取识别训练图片及标签\r\n",
    "    img = cv2.imread(path)\r\n",
    "    crop = img[bboxs[1]:bboxs[3], bboxs[0]:bboxs[2], :]\r\n",
    "    cv2.imwrite('dataset/img/%06d.jpg' % count, crop) # 截取车牌号部分\r\n",
    "    line_rec = 'dataset/img/%06d.jpg\\t%s\\n' % (count, labels) #\r\n",
    "\r\n",
    "    # 写入txt\r\n",
    "    if count <= train_num:\r\n",
    "        train_det.write(line_det)\r\n",
    "        train_rec.write(line_rec)\r\n",
    "    else:\r\n",
    "        dev_det.write(line_det)\r\n",
    "        dev_rec.write(line_rec)\r\n",
    "    count += 1\r\n",
    "train_det.close()\r\n",
    "dev_det.close()\r\n",
    "train_rec.close()\r\n",
    "dev_rec.close()\r\n",
    "# 源码无法运行，本初有所修改\r\n",
    "\r\n",
    "# 创建字典文件\r\n",
    "with open('dataset/dict.txt', 'w', encoding='UTF-8') as file:\r\n",
    "    for key in ads+provinces:\r\n",
    "        file.write(key+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[276, 545], [486, 561], [513, 644], [303, 628]]"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# bboxs11 = \"276&545_513&644\"\r\n",
    "# bboxs11 = bboxs11.split('_')\r\n",
    "# x1, y1 = bboxs11[0].split('&')\r\n",
    "# x2, y2 = bboxs11[1].split('&')\r\n",
    "# bboxs11 = [int(coord) for coord in [x1, y1, x2, y2]]\r\n",
    "# bboxs11\r\n",
    "\r\n",
    "# points11 = \"513&644_303&628_276&545_486&561\"\r\n",
    "# points11 = points11.split('_')\r\n",
    "# points11 = [point.split('&') for point in points11]\r\n",
    "# points11_ = points11[-2:]+points11[:2]\r\n",
    "# points11_ # [['276', '545'], ['486', '561'], ['513', '644'], ['303', '628']]\r\n",
    "# points11 = []\r\n",
    "# for point in points11_:\r\n",
    "#     points11.append([int(_) for _ in point])\r\n",
    "# points11 # [['276', '545'], ['486', '561'], ['513', '644'], ['303', '628']]\r\n",
    "# [['276', '545'], ['486', '561'], ['513', '644'], ['303', '628']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 4.模型介绍\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "PaddleOCR算法列表\n",
    "PaddleOCR中提供了如下文本检测算法和文本识别算法列表，以及每个算法在英文公开数据集上的模型和指标，主要用于算法简介和算法性能对比。\n",
    "\n",
    "文本检测算法：\n",
    "<center>\n",
    "  \n",
    "|模型|骨干网络|precision|recall|Hmean|下载链接|\n",
    "| --- | --- | --- | --- | --- | --- |\n",
    "|EAST|ResNet50_vd|85.80%|86.71%|86.25%|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar)|\n",
    "|EAST|MobileNetV3|79.42%|80.64%|80.03%|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_east_v2.0_train.tar)|\n",
    "|DB|ResNet50_vd|86.41%|78.72%|82.38%|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar)|\n",
    "|DB|MobileNetV3|77.29%|73.08%|75.12%|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar)|\n",
    "|SAST|ResNet50_vd|91.39%|83.77%|87.42%|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_sast_icdar15_v2.0_train.tar)|\n",
    "</center>\n",
    "  \n",
    "文本识别算法：\n",
    "<center>\n",
    "\n",
    "  \n",
    "|模型|骨干网络|Avg Accuracy|模型存储命名|下载链接|\n",
    "|---|---|---|---|---|\n",
    "|Rosetta|Resnet34_vd|80.9%|rec_r34_vd_none_none_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_none_none_ctc_v2.0_train.tar)|\n",
    "|Rosetta|MobileNetV3|78.05%|rec_mv3_none_none_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_none_ctc_v2.0_train.tar)|\n",
    "|CRNN|Resnet34_vd|82.76%|rec_r34_vd_none_bilstm_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_none_bilstm_ctc_v2.0_train.tar)|\n",
    "|CRNN|MobileNetV3|79.97%|rec_mv3_none_bilstm_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar)|\n",
    "|StarNet|Resnet34_vd|84.44%|rec_r34_vd_tps_bilstm_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_tps_bilstm_ctc_v2.0_train.tar)|\n",
    "|StarNet|MobileNetV3|81.42%|rec_mv3_tps_bilstm_ctc|[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_tps_bilstm_ctc_v2.0_train.tar)|\n",
    "|RARE|MobileNetV3|82.5%|rec_mv3_tps_bilstm_att |[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_tps_bilstm_att_v2.0_train.tar)|\n",
    "|RARE|Resnet34_vd|83.6%|rec_r34_vd_tps_bilstm_att |[预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r34_vd_tps_bilstm_att_v2.0_train.tar)|\n",
    "|SRN|Resnet50_vd_fpn| 88.52% | rec_r50fpn_vd_none_srn | [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_r50_vd_srn_train.tar) |\n",
    "|NRTR|NRTR_MTB| 84.3% | rec_mtb_nrtr | [预训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mtb_nrtr_train.tar) |\n",
    "</center>\n",
    "\n",
    "\n",
    "考虑车牌识别中字符数量较少，而且长度也固定，且为标准的印刷字体，所以无需使用过于复杂的模型。我们选择DBNet检测算法和CRNN识别模型作，PaddleOCR的检测模型目前支持两种backbone，分别是MobileNetV3、ResNet_vd系列，本实验两个模型均使用MobileNetV3作为其主干网络(Backbone)。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cloning into 'PaddleOCR'...\n",
      "remote: Enumerating objects: 28277, done.\u001b[K\n",
      "remote: Counting objects: 100% (2656/2656), done.\u001b[K\n",
      "remote: Compressing objects: 100% (1080/1080), done.\u001b[K\n",
      "remote: Total 28277 (delta 1776), reused 2343 (delta 1550), pack-reused 25621\u001b[K\n",
      "Receiving objects: 100% (28277/28277), 251.75 MiB | 1.69 MiB/s, done.\n",
      "Resolving deltas: 100% (19637/19637), done.\n",
      "Checking connectivity... done.\n"
     ]
    }
   ],
   "source": [
    "!git clone https://gitee.com/paddlepaddle/PaddleOCR\r\n",
    "# !git clone https://github.com/PaddlePaddle/PaddleOCR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/PaddleOCR\n",
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Collecting shapely\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/9d/4d/4b0d86ed737acb29c5e627a91449470a9fb914f32640db3f1cb7ba5bc19e/Shapely-1.8.1.post1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB)\n",
      "     |████████████████████████████████| 2.0 MB 7.1 MB/s            \n",
      "\u001b[?25hCollecting scikit-image\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d2/d9/d16d4cbb4840e0fb3bd329b49184d240b82b649e1bd579489394fbc85c81/scikit_image-0.19.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (13.5 MB)\n",
      "     |████████████████████████████████| 13.5 MB 27.1 MB/s            \n",
      "\u001b[?25hCollecting imgaug==0.4.0\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/66/b1/af3142c4a85cba6da9f4ebb5ff4e21e2616309552caca5e8acefe9840622/imgaug-0.4.0-py2.py3-none-any.whl (948 kB)\n",
      "     |████████████████████████████████| 948 kB 35.2 MB/s            \n",
      "\u001b[?25hCollecting pyclipper\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c5/fa/2c294127e4f88967149a68ad5b3e43636e94e3721109572f8f17ab15b772/pyclipper-1.3.0.post2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (603 kB)\n",
      "     |████████████████████████████████| 603 kB 47.5 MB/s            \n",
      "\u001b[?25hCollecting lmdb\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/4d/cf/3230b1c9b0bec406abb85a9332ba5805bdd03a1d24025c6bbcfb8ed71539/lmdb-1.3.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (298 kB)\n",
      "     |████████████████████████████████| 298 kB 6.0 MB/s            \n",
      "\u001b[?25hRequirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 6)) (4.27.0)\n",
      "Requirement already satisfied: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 7)) (1.19.5)\n",
      "Requirement already satisfied: visualdl in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 8)) (2.2.0)\n",
      "Collecting python-Levenshtein\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/2a/dc/97f2b63ef0fa1fd78dcb7195aca577804f6b2b51e712516cc0e902a9a201/python-Levenshtein-0.12.2.tar.gz (50 kB)\n",
      "     |████████████████████████████████| 50 kB 23.2 MB/s            \n",
      "\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25hCollecting opencv-contrib-python==4.4.0.46\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/08/51/1e0a206dd5c70fea91084e6f43979dc13e8eb175760cc7a105083ec3eb68/opencv_contrib_python-4.4.0.46-cp37-cp37m-manylinux2014_x86_64.whl (55.7 MB)\n",
      "     |████████████████████████████████| 55.7 MB 36.8 MB/s             \n",
      "\u001b[?25hRequirement already satisfied: cython in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 11)) (0.29)\n",
      "Collecting lxml\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/8d/63/03f25363b26fa27a733d920554d73e34390830b3b5c012d7a9f721d1dc2d/lxml-4.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (6.4 MB)\n",
      "     |████████████████████████████████| 6.4 MB 12.0 MB/s            \n",
      "\u001b[?25hCollecting premailer\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b1/07/4e8d94f94c7d41ca5ddf8a9695ad87b888104e2fd41a35546c1dc9ca74ac/premailer-3.10.0-py2.py3-none-any.whl (19 kB)\n",
      "Requirement already satisfied: openpyxl in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 14)) (3.0.5)\n",
      "Requirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (4.1.1.26)\n",
      "Requirement already satisfied: six in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (1.16.0)\n",
      "Requirement already satisfied: scipy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (1.6.3)\n",
      "Requirement already satisfied: imageio in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (2.6.1)\n",
      "Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (2.2.3)\n",
      "Requirement already satisfied: Pillow in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug==0.4.0->-r requirements.txt (line 3)) (8.2.0)\n",
      "Requirement already satisfied: packaging>=20.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 2)) (21.3)\n",
      "Requirement already satisfied: networkx>=2.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 2)) (2.4)\n",
      "Collecting tifffile>=2019.7.26\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d8/38/85ae5ed77598ca90558c17a2f79ddaba33173b31cf8d8f545d34d9134f0d/tifffile-2021.11.2-py3-none-any.whl (178 kB)\n",
      "     |████████████████████████████████| 178 kB 26.8 MB/s            \n",
      "\u001b[?25hCollecting PyWavelets>=1.1.1\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/a1/9c/564511b6e1c4e1d835ed2d146670436036960d09339a8fa2921fe42dad08/PyWavelets-1.2.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (6.1 MB)\n",
      "     |████████████████████████████████| 6.1 MB 9.2 MB/s            \n",
      "\u001b[?25hRequirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (0.8.53)\n",
      "Requirement already satisfied: shellcheck-py in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (0.7.1.1)\n",
      "Requirement already satisfied: requests in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (2.24.0)\n",
      "Requirement already satisfied: flake8>=3.7.9 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (4.0.1)\n",
      "Requirement already satisfied: pandas in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.1.5)\n",
      "Requirement already satisfied: flask>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.1.1)\n",
      "Requirement already satisfied: pre-commit in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.21.0)\n",
      "Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.0.0)\n",
      "Requirement already satisfied: protobuf>=3.11.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (3.14.0)\n",
      "Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from python-Levenshtein->-r requirements.txt (line 9)) (56.2.0)\n",
      "Requirement already satisfied: cachetools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from premailer->-r requirements.txt (line 13)) (4.0.0)\n",
      "Collecting cssutils\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cc/ee/0f8a57df120e1003e461f014b2412278e94b1ce488b9c88464dd012ee1e7/cssutils-2.4.0-py3-none-any.whl (404 kB)\n",
      "     |████████████████████████████████| 404 kB 13.3 MB/s            \n",
      "\u001b[?25hCollecting cssselect\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3b/d4/3b5c17f00cce85b9a1e6f91096e1cc8e8ede2e1be8e96b87ce1ed09e92c5/cssselect-1.1.0-py2.py3-none-any.whl (16 kB)\n",
      "Requirement already satisfied: et-xmlfile in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from openpyxl->-r requirements.txt (line 14)) (1.0.1)\n",
      "Requirement already satisfied: jdcal in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from openpyxl->-r requirements.txt (line 14)) (1.4.1)\n",
      "Requirement already satisfied: importlib-metadata<4.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (4.2.0)\n",
      "Requirement already satisfied: pycodestyle<2.9.0,>=2.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (2.8.0)\n",
      "Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (0.6.1)\n",
      "Requirement already satisfied: pyflakes<2.5.0,>=2.4.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (2.4.0)\n",
      "Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (1.1.0)\n",
      "Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (0.16.0)\n",
      "Requirement already satisfied: click>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (7.0)\n",
      "Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (2.11.0)\n",
      "Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->-r requirements.txt (line 8)) (2.8.0)\n",
      "Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->-r requirements.txt (line 8)) (2019.3)\n",
      "Requirement already satisfied: decorator>=4.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from networkx>=2.2->scikit-image->-r requirements.txt (line 2)) (4.4.2)\n",
      "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from packaging>=20.0->scikit-image->-r requirements.txt (line 2)) (3.0.7)\n",
      "Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->-r requirements.txt (line 8)) (3.9.9)\n",
      "Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->-r requirements.txt (line 8)) (0.18.0)\n",
      "Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug==0.4.0->-r requirements.txt (line 3)) (0.10.0)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug==0.4.0->-r requirements.txt (line 3)) (2.8.2)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug==0.4.0->-r requirements.txt (line 3)) (1.1.0)\n",
      "Requirement already satisfied: virtualenv>=15.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (16.7.9)\n",
      "Requirement already satisfied: cfgv>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (2.0.1)\n",
      "Requirement already satisfied: aspy.yaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (1.3.0)\n",
      "Requirement already satisfied: pyyaml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (5.1.2)\n",
      "Requirement already satisfied: toml in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (0.10.0)\n",
      "Requirement already satisfied: identify>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (1.4.10)\n",
      "Requirement already satisfied: nodeenv>=0.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pre-commit->visualdl->-r requirements.txt (line 8)) (1.3.4)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl->-r requirements.txt (line 8)) (2019.9.11)\n",
      "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl->-r requirements.txt (line 8)) (1.25.6)\n",
      "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl->-r requirements.txt (line 8)) (3.0.4)\n",
      "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests->visualdl->-r requirements.txt (line 8)) (2.8)\n",
      "Requirement already satisfied: zipp>=0.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata<4.3->flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (3.7.0)\n",
      "Requirement already satisfied: typing-extensions>=3.6.4 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata<4.3->flake8>=3.7.9->visualdl->-r requirements.txt (line 8)) (4.0.1)\n",
      "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (2.0.1)\n",
      "Building wheels for collected packages: python-Levenshtein\n",
      "  Building wheel for python-Levenshtein (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for python-Levenshtein: filename=python_Levenshtein-0.12.2-cp37-cp37m-linux_x86_64.whl size=171679 sha256=7c730a99c02e0c56a1217cf112992a5844b0b9a33e7399893229f11e27c45f57\n",
      "  Stored in directory: /home/aistudio/.cache/pip/wheels/38/b9/a4/3729726160fb103833de468adb5ce019b58543ae41d0b0e446\n",
      "Successfully built python-Levenshtein\n",
      "Installing collected packages: tifffile, PyWavelets, shapely, scikit-image, lxml, cssutils, cssselect, python-Levenshtein, pyclipper, premailer, opencv-contrib-python, lmdb, imgaug\n",
      "Successfully installed PyWavelets-1.2.0 cssselect-1.1.0 cssutils-2.4.0 imgaug-0.4.0 lmdb-1.3.0 lxml-4.8.0 opencv-contrib-python-4.4.0.46 premailer-3.10.0 pyclipper-1.3.0.post2 python-Levenshtein-0.12.2 scikit-image-0.19.2 shapely-1.8.1.post1 tifffile-2021.11.2\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n",
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Requirement already satisfied: imgaug in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (0.4.0)\n",
      "Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (2.2.3)\n",
      "Requirement already satisfied: imageio in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (2.6.1)\n",
      "Requirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (4.1.1.26)\n",
      "Requirement already satisfied: numpy>=1.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (1.19.5)\n",
      "Requirement already satisfied: scikit-image>=0.14.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (0.19.2)\n",
      "Requirement already satisfied: Shapely in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (1.8.1.post1)\n",
      "Requirement already satisfied: six in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (1.16.0)\n",
      "Requirement already satisfied: Pillow in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (8.2.0)\n",
      "Requirement already satisfied: scipy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from imgaug) (1.6.3)\n",
      "Requirement already satisfied: packaging>=20.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.2->imgaug) (21.3)\n",
      "Requirement already satisfied: PyWavelets>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.2->imgaug) (1.2.0)\n",
      "Requirement already satisfied: tifffile>=2019.7.26 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.2->imgaug) (2021.11.2)\n",
      "Requirement already satisfied: networkx>=2.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.2->imgaug) (2.4)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug) (2.8.2)\n",
      "Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug) (0.10.0)\n",
      "Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug) (2019.3)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug) (1.1.0)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->imgaug) (3.0.7)\n",
      "Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib->imgaug) (56.2.0)\n",
      "Requirement already satisfied: decorator>=4.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from networkx>=2.2->scikit-image>=0.14.2->imgaug) (4.4.2)\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n",
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Requirement already satisfied: pyclipper in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (1.3.0.post2)\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n",
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Requirement already satisfied: lmdb in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (1.3.0)\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n",
      "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n",
      "Collecting Levenshtein\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/1f/c6/67cf0a6903ac4e86fa04672cb1d7e7a6db61e3167d8deebfad5782163f3a/Levenshtein-0.18.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258 kB)\n",
      "     |████████████████████████████████| 258 kB 6.6 MB/s            \n",
      "\u001b[?25hCollecting rapidfuzz<3.0.0,>=2.0.1\n",
      "  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/dd/6d/3e929f69ca22bfe12525b294ac32d981eb58f30125c3e47aa1c56d04b7df/rapidfuzz-2.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)\n",
      "     |████████████████████████████████| 2.1 MB 6.1 MB/s            \n",
      "\u001b[?25hInstalling collected packages: rapidfuzz, Levenshtein\n",
      "Successfully installed Levenshtein-0.18.1 rapidfuzz-2.0.5\n",
      "\u001b[33mWARNING: You are using pip version 21.3.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/opt/conda/envs/python35-paddle120-env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n",
      "/home/aistudio\n"
     ]
    }
   ],
   "source": [
    "# 安装依赖\r\n",
    "%cd PaddleOCR\r\n",
    "!pip install -r requirements.txt\r\n",
    "# 有些依赖需要单独安装\r\n",
    "!pip install imgaug\r\n",
    "!pip install pyclipper\r\n",
    "!pip install lmdb\r\n",
    "!pip install Levenshtein\r\n",
    "%cd .."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "下载预训练模型\n",
    "首先下载模型backbone的pretrain model，您可以根据需求使用PaddleClas中的模型更换backbone， 对应的backbone预训练模型可以从PaddleClas repo 主页中找到下载链接。\n",
    "[https://github.com/PaddlePaddle/PaddleClas/blob/release%2F2.0/README_cn.md#resnet%E5%8F%8A%E5%85%B6vd%E7%B3%BB%E5%88%97](https://github.com/PaddlePaddle/PaddleClas/blob/release%2F2.0/README_cn.md#resnet%E5%8F%8A%E5%85%B6vd%E7%B3%BB%E5%88%97)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/PaddleOCR\n",
      "--2022-02-19 14:44:07--  https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams\n",
      "Resolving paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)... 182.61.200.195, 182.61.200.229, 2409:8c04:1001:1002:0:ff:b001:368a\n",
      "Connecting to paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)|182.61.200.195|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 16255295 (16M) [application/octet-stream]\n",
      "Saving to: ‘./pretrain_models/MobileNetV3_large_x0_5_pretrained.pdparams’\n",
      "\n",
      "MobileNetV3_large_x 100%[===================>]  15.50M  15.1MB/s    in 1.0s    \n",
      "\n",
      "2022-02-19 14:44:08 (15.1 MB/s) - ‘./pretrain_models/MobileNetV3_large_x0_5_pretrained.pdparams’ saved [16255295/16255295]\n",
      "\n",
      "/home/aistudio\n"
     ]
    }
   ],
   "source": [
    "\r\n",
    "%cd PaddleOCR/\r\n",
    "# 下载MobileNetV3的检测预训练模型\r\n",
    "!wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/MobileNetV3_large_x0_5_pretrained.pdparams\r\n",
    "%cd .."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/PaddleOCR\n",
      "--2022-02-19 14:44:17--  https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar\n",
      "Resolving paddleocr.bj.bcebos.com (paddleocr.bj.bcebos.com)... 182.61.200.229, 182.61.200.195, 2409:8c04:1001:1002:0:ff:b001:368a\n",
      "Connecting to paddleocr.bj.bcebos.com (paddleocr.bj.bcebos.com)|182.61.200.229|:443... connected.\n",
      "HTTP request sent, awaiting response... 200 OK\n",
      "Length: 51200000 (49M) [application/x-tar]\n",
      "Saving to: ‘./pretrain_models/rec_mv3_none_bilstm_ctc_v2.0_train.tar’\n",
      "\n",
      "rec_mv3_none_bilstm 100%[===================>]  48.83M  19.2MB/s    in 2.5s    \n",
      "\n",
      "2022-02-19 14:44:20 (19.2 MB/s) - ‘./pretrain_models/rec_mv3_none_bilstm_ctc_v2.0_train.tar’ saved [51200000/51200000]\n",
      "\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/best_accuracy.pdopt\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/.DS_Store\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/train.log\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/best_accuracy.pdparams\n",
      "rec_mv3_none_bilstm_ctc_v2.0_train/best_accuracy.states\n",
      "/home/aistudio\n"
     ]
    }
   ],
   "source": [
    "\r\n",
    "# 下载MobileNetV3的识别预训练模型\r\n",
    "%cd PaddleOCR/\r\n",
    "!wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar\r\n",
    "# 解压模型参数\r\n",
    "!tar -xvf pretrain_models/rec_mv3_none_bilstm_ctc_v2.0_train.tar -C pretrain_models/\r\n",
    "!rm -rf pretrain_models/rec_mv3_none_bilstm_ctc_v2.0_train.tar\r\n",
    "%cd .."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 模型训练\n",
    "\n",
    "### 5.1训练检测模型\n",
    "首先我们需要修改configs/det/det_mv3_db.yml文件中Train和Eval数据集的图片路径data_dir和标签路径label_file_list。\n",
    "\n",
    "如果您安装的是paddle cpu版本，需要将det_mv3_db.yml配置文件中的use_gpu字段修改为false"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/PaddleOCR\n"
     ]
    }
   ],
   "source": [
    "%cd PaddleOCR/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import imgaug"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# !pip install imgaug\r\n",
    "# !pip install pyclipper\r\n",
    "# !pip install lmdb\r\n",
    "# !pip install Levenshtein"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2022/02/27 10:30:34] root INFO: Architecture : \n",
      "[2022/02/27 10:30:34] root INFO:     Backbone : \n",
      "[2022/02/27 10:30:34] root INFO:         model_name : large\n",
      "[2022/02/27 10:30:34] root INFO:         name : MobileNetV3\n",
      "[2022/02/27 10:30:34] root INFO:         scale : 0.5\n",
      "[2022/02/27 10:30:34] root INFO:     Head : \n",
      "[2022/02/27 10:30:34] root INFO:         k : 50\n",
      "[2022/02/27 10:30:34] root INFO:         name : DBHead\n",
      "[2022/02/27 10:30:34] root INFO:     Neck : \n",
      "[2022/02/27 10:30:34] root INFO:         name : DBFPN\n",
      "[2022/02/27 10:30:34] root INFO:         out_channels : 256\n",
      "[2022/02/27 10:30:34] root INFO:     Transform : None\n",
      "[2022/02/27 10:30:34] root INFO:     algorithm : DB\n",
      "[2022/02/27 10:30:34] root INFO:     model_type : det\n",
      "[2022/02/27 10:30:34] root INFO: Eval : \n",
      "[2022/02/27 10:30:34] root INFO:     dataset : \n",
      "[2022/02/27 10:30:34] root INFO:         data_dir : /home/aistudio/\n",
      "[2022/02/27 10:30:34] root INFO:         label_file_list : ['/home/aistudio/dataset/dev_det.txt']\n",
      "[2022/02/27 10:30:34] root INFO:         name : SimpleDataSet\n",
      "[2022/02/27 10:30:34] root INFO:         transforms : \n",
      "[2022/02/27 10:30:34] root INFO:             DecodeImage : \n",
      "[2022/02/27 10:30:34] root INFO:                 channel_first : False\n",
      "[2022/02/27 10:30:34] root INFO:                 img_mode : BGR\n",
      "[2022/02/27 10:30:34] root INFO:             DetLabelEncode : None\n",
      "[2022/02/27 10:30:34] root INFO:             DetResizeForTest : \n",
      "[2022/02/27 10:30:34] root INFO:                 image_shape : [736, 1280]\n",
      "[2022/02/27 10:30:34] root INFO:             NormalizeImage : \n",
      "[2022/02/27 10:30:34] root INFO:                 mean : [0.485, 0.456, 0.406]\n",
      "[2022/02/27 10:30:34] root INFO:                 order : hwc\n",
      "[2022/02/27 10:30:34] root INFO:                 scale : 1./255.\n",
      "[2022/02/27 10:30:34] root INFO:                 std : [0.229, 0.224, 0.225]\n",
      "[2022/02/27 10:30:34] root INFO:             ToCHWImage : None\n",
      "[2022/02/27 10:30:34] root INFO:             KeepKeys : \n",
      "[2022/02/27 10:30:34] root INFO:                 keep_keys : ['image', 'shape', 'polys', 'ignore_tags']\n",
      "[2022/02/27 10:30:34] root INFO:     loader : \n",
      "[2022/02/27 10:30:34] root INFO:         batch_size_per_card : 1\n",
      "[2022/02/27 10:30:34] root INFO:         drop_last : False\n",
      "[2022/02/27 10:30:34] root INFO:         num_workers : 8\n",
      "[2022/02/27 10:30:34] root INFO:         shuffle : False\n",
      "[2022/02/27 10:30:34] root INFO:         use_shared_memory : False\n",
      "[2022/02/27 10:30:34] root INFO: Global : \n",
      "[2022/02/27 10:30:34] root INFO:     cal_metric_during_train : False\n",
      "[2022/02/27 10:30:34] root INFO:     checkpoints : None\n",
      "[2022/02/27 10:30:34] root INFO:     debug : False\n",
      "[2022/02/27 10:30:34] root INFO:     distributed : False\n",
      "[2022/02/27 10:30:34] root INFO:     epoch_num : 1\n",
      "[2022/02/27 10:30:34] root INFO:     eval_batch_step : [0, 2000]\n",
      "[2022/02/27 10:30:34] root INFO:     infer_img : doc/imgs_en/img_10.jpg\n",
      "[2022/02/27 10:30:34] root INFO:     log_smooth_window : 20\n",
      "[2022/02/27 10:30:34] root INFO:     pretrained_model : ./pretrain_models/MobileNetV3_large_x0_5_pretrained\n",
      "[2022/02/27 10:30:34] root INFO:     print_batch_step : 10\n",
      "[2022/02/27 10:30:34] root INFO:     save_epoch_step : 10\n",
      "[2022/02/27 10:30:34] root INFO:     save_inference_dir : None\n",
      "[2022/02/27 10:30:34] root INFO:     save_model_dir : ./output/db_mv3/\n",
      "[2022/02/27 10:30:34] root INFO:     save_res_path : ./output/det_db/predicts_db.txt\n",
      "[2022/02/27 10:30:34] root INFO:     use_gpu : True\n",
      "[2022/02/27 10:30:34] root INFO:     use_visualdl : False\n",
      "[2022/02/27 10:30:34] root INFO: Loss : \n",
      "[2022/02/27 10:30:34] root INFO:     alpha : 5\n",
      "[2022/02/27 10:30:34] root INFO:     balance_loss : True\n",
      "[2022/02/27 10:30:34] root INFO:     beta : 10\n",
      "[2022/02/27 10:30:34] root INFO:     main_loss_type : DiceLoss\n",
      "[2022/02/27 10:30:34] root INFO:     name : DBLoss\n",
      "[2022/02/27 10:30:34] root INFO:     ohem_ratio : 3\n",
      "[2022/02/27 10:30:34] root INFO: Metric : \n",
      "[2022/02/27 10:30:34] root INFO:     main_indicator : hmean\n",
      "[2022/02/27 10:30:34] root INFO:     name : DetMetric\n",
      "[2022/02/27 10:30:34] root INFO: Optimizer : \n",
      "[2022/02/27 10:30:34] root INFO:     beta1 : 0.9\n",
      "[2022/02/27 10:30:34] root INFO:     beta2 : 0.999\n",
      "[2022/02/27 10:30:34] root INFO:     lr : \n",
      "[2022/02/27 10:30:34] root INFO:         learning_rate : 0.001\n",
      "[2022/02/27 10:30:34] root INFO:     name : Adam\n",
      "[2022/02/27 10:30:34] root INFO:     regularizer : \n",
      "[2022/02/27 10:30:34] root INFO:         factor : 0\n",
      "[2022/02/27 10:30:34] root INFO:         name : L2\n",
      "[2022/02/27 10:30:34] root INFO: PostProcess : \n",
      "[2022/02/27 10:30:34] root INFO:     box_thresh : 0.6\n",
      "[2022/02/27 10:30:34] root INFO:     max_candidates : 1000\n",
      "[2022/02/27 10:30:34] root INFO:     name : DBPostProcess\n",
      "[2022/02/27 10:30:34] root INFO:     thresh : 0.3\n",
      "[2022/02/27 10:30:34] root INFO:     unclip_ratio : 1.5\n",
      "[2022/02/27 10:30:34] root INFO: Train : \n",
      "[2022/02/27 10:30:34] root INFO:     dataset : \n",
      "[2022/02/27 10:30:34] root INFO:         data_dir : /home/aistudio\n",
      "[2022/02/27 10:30:34] root INFO:         label_file_list : ['/home/aistudio/dataset/train_det.txt']\n",
      "[2022/02/27 10:30:34] root INFO:         name : SimpleDataSet\n",
      "[2022/02/27 10:30:34] root INFO:         ratio_list : [1.0]\n",
      "[2022/02/27 10:30:34] root INFO:         transforms : \n",
      "[2022/02/27 10:30:34] root INFO:             DecodeImage : \n",
      "[2022/02/27 10:30:34] root INFO:                 channel_first : False\n",
      "[2022/02/27 10:30:34] root INFO:                 img_mode : BGR\n",
      "[2022/02/27 10:30:34] root INFO:             DetLabelEncode : None\n",
      "[2022/02/27 10:30:34] root INFO:             IaaAugment : \n",
      "[2022/02/27 10:30:34] root INFO:                 augmenter_args : \n",
      "[2022/02/27 10:30:34] root INFO:                     args : \n",
      "[2022/02/27 10:30:34] root INFO:                         p : 0.5\n",
      "[2022/02/27 10:30:34] root INFO:                     type : Fliplr\n",
      "[2022/02/27 10:30:34] root INFO:                     args : \n",
      "[2022/02/27 10:30:34] root INFO:                         rotate : [-10, 10]\n",
      "[2022/02/27 10:30:34] root INFO:                     type : Affine\n",
      "[2022/02/27 10:30:34] root INFO:                     args : \n",
      "[2022/02/27 10:30:34] root INFO:                         size : [0.5, 3]\n",
      "[2022/02/27 10:30:34] root INFO:                     type : Resize\n",
      "[2022/02/27 10:30:34] root INFO:             EastRandomCropData : \n",
      "[2022/02/27 10:30:34] root INFO:                 keep_ratio : True\n",
      "[2022/02/27 10:30:34] root INFO:                 max_tries : 50\n",
      "[2022/02/27 10:30:34] root INFO:                 size : [640, 640]\n",
      "[2022/02/27 10:30:34] root INFO:             MakeBorderMap : \n",
      "[2022/02/27 10:30:34] root INFO:                 shrink_ratio : 0.4\n",
      "[2022/02/27 10:30:34] root INFO:                 thresh_max : 0.7\n",
      "[2022/02/27 10:30:34] root INFO:                 thresh_min : 0.3\n",
      "[2022/02/27 10:30:34] root INFO:             MakeShrinkMap : \n",
      "[2022/02/27 10:30:34] root INFO:                 min_text_size : 8\n",
      "[2022/02/27 10:30:34] root INFO:                 shrink_ratio : 0.4\n",
      "[2022/02/27 10:30:34] root INFO:             NormalizeImage : \n",
      "[2022/02/27 10:30:34] root INFO:                 mean : [0.485, 0.456, 0.406]\n",
      "[2022/02/27 10:30:34] root INFO:                 order : hwc\n",
      "[2022/02/27 10:30:34] root INFO:                 scale : 1./255.\n",
      "[2022/02/27 10:30:34] root INFO:                 std : [0.229, 0.224, 0.225]\n",
      "[2022/02/27 10:30:34] root INFO:             ToCHWImage : None\n",
      "[2022/02/27 10:30:34] root INFO:             KeepKeys : \n",
      "[2022/02/27 10:30:34] root INFO:                 keep_keys : ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask']\n",
      "[2022/02/27 10:30:34] root INFO:     loader : \n",
      "[2022/02/27 10:30:34] root INFO:         batch_size_per_card : 16\n",
      "[2022/02/27 10:30:34] root INFO:         drop_last : False\n",
      "[2022/02/27 10:30:34] root INFO:         num_workers : 8\n",
      "[2022/02/27 10:30:34] root INFO:         shuffle : True\n",
      "[2022/02/27 10:30:34] root INFO:         use_shared_memory : False\n",
      "[2022/02/27 10:30:34] root INFO: profiler_options : None\n",
      "[2022/02/27 10:30:34] root INFO: train with paddle 2.2.2 and device CUDAPlace(0)\n",
      "[2022/02/27 10:30:34] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/train_det.txt']\n",
      "[2022/02/27 10:30:34] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/dev_det.txt']\n",
      "W0227 10:30:34.244597  1498 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0227 10:30:34.249632  1498 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n",
      "[2022/02/27 10:30:38] root WARNING: The shape of model params neck.in2_conv.weight [256, 16, 1, 1] not matched with loaded params last_conv.weight [1280, 480, 1, 1] !\n",
      "[2022/02/27 10:30:38] root WARNING: The shape of model params neck.in3_conv.weight [256, 24, 1, 1] not matched with loaded params out.weight [1280, 1000] !\n",
      "[2022/02/27 10:30:38] root WARNING: The shape of model params neck.in4_conv.weight [256, 56, 1, 1] not matched with loaded params out.bias [1000] !\n",
      "[2022/02/27 10:30:38] root INFO: load pretrain successful from ./pretrain_models/MobileNetV3_large_x0_5_pretrained\n",
      "[2022/02/27 10:30:38] root INFO: train dataloader has 4789 iters\n",
      "[2022/02/27 10:30:38] root INFO: valid dataloader has 19154 iters\n",
      "[2022/02/27 10:30:38] root INFO: During the training process, after the 0th iteration, an evaluation is run every 2000 iterations\n",
      "[2022/02/27 10:30:38] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/train_det.txt']\n",
      "[2022/02/27 10:30:57] root INFO: epoch: [1/1], iter: 10, lr: 0.001000, loss: 7.360710, loss_shrink_maps: 4.679494, loss_threshold_maps: 1.703745, loss_binary_maps: 0.938653, reader_cost: 0.93765 s, batch_cost: 1.87548 s, samples: 176, ips: 9.38428\n",
      "[2022/02/27 10:31:04] root INFO: epoch: [1/1], iter: 20, lr: 0.001000, loss: 6.305904, loss_shrink_maps: 4.480330, loss_threshold_maps: 0.918915, loss_binary_maps: 0.893107, reader_cost: 0.01926 s, batch_cost: 0.67575 s, samples: 160, ips: 23.67728\n",
      "[2022/02/27 10:31:10] root INFO: epoch: [1/1], iter: 30, lr: 0.001000, loss: 5.567590, loss_shrink_maps: 4.114257, loss_threshold_maps: 0.715105, loss_binary_maps: 0.773055, reader_cost: 0.00119 s, batch_cost: 0.65901 s, samples: 160, ips: 24.27869\n",
      "[2022/02/27 10:31:17] root INFO: epoch: [1/1], iter: 40, lr: 0.001000, loss: 4.960641, loss_shrink_maps: 3.717736, loss_threshold_maps: 0.621372, loss_binary_maps: 0.617606, reader_cost: 0.00212 s, batch_cost: 0.59794 s, samples: 160, ips: 26.75862\n",
      "[2022/02/27 10:31:24] root INFO: epoch: [1/1], iter: 50, lr: 0.001000, loss: 4.346808, loss_shrink_maps: 3.253286, loss_threshold_maps: 0.584085, loss_binary_maps: 0.475843, reader_cost: 0.02167 s, batch_cost: 0.67440 s, samples: 160, ips: 23.72483\n",
      "[2022/02/27 10:31:30] root INFO: epoch: [1/1], iter: 60, lr: 0.001000, loss: 3.630949, loss_shrink_maps: 2.725018, loss_threshold_maps: 0.540499, loss_binary_maps: 0.254722, reader_cost: 0.00335 s, batch_cost: 0.62470 s, samples: 160, ips: 25.61224\n",
      "[2022/02/27 10:31:37] root INFO: epoch: [1/1], iter: 70, lr: 0.001000, loss: 2.618855, loss_shrink_maps: 1.838300, loss_threshold_maps: 0.549754, loss_binary_maps: 0.156423, reader_cost: 0.02219 s, batch_cost: 0.66184 s, samples: 160, ips: 24.17518\n",
      "[2022/02/27 10:31:44] root INFO: epoch: [1/1], iter: 80, lr: 0.001000, loss: 2.141308, loss_shrink_maps: 1.467326, loss_threshold_maps: 0.509085, loss_binary_maps: 0.125851, reader_cost: 0.00494 s, batch_cost: 0.60833 s, samples: 160, ips: 26.30133\n",
      "[2022/02/27 10:31:50] root INFO: epoch: [1/1], iter: 90, lr: 0.001000, loss: 1.695071, loss_shrink_maps: 1.127743, loss_threshold_maps: 0.476883, loss_binary_maps: 0.110227, reader_cost: 0.00381 s, batch_cost: 0.65714 s, samples: 160, ips: 24.34782\n",
      "[2022/02/27 10:31:57] root INFO: epoch: [1/1], iter: 100, lr: 0.001000, loss: 1.451104, loss_shrink_maps: 0.884073, loss_threshold_maps: 0.465268, loss_binary_maps: 0.090119, reader_cost: 0.00027 s, batch_cost: 0.65774 s, samples: 160, ips: 24.32563\n",
      "[2022/02/27 10:32:04] root INFO: epoch: [1/1], iter: 110, lr: 0.001000, loss: 1.352390, loss_shrink_maps: 0.793031, loss_threshold_maps: 0.468286, loss_binary_maps: 0.084701, reader_cost: 0.00218 s, batch_cost: 0.67345 s, samples: 160, ips: 23.75834\n",
      "[2022/02/27 10:32:10] root INFO: epoch: [1/1], iter: 120, lr: 0.001000, loss: 1.392657, loss_shrink_maps: 0.801036, loss_threshold_maps: 0.481187, loss_binary_maps: 0.089004, reader_cost: 0.01979 s, batch_cost: 0.63869 s, samples: 160, ips: 25.05137\n",
      "[2022/02/27 10:32:17] root INFO: epoch: [1/1], iter: 130, lr: 0.001000, loss: 1.291720, loss_shrink_maps: 0.752900, loss_threshold_maps: 0.462722, loss_binary_maps: 0.088631, reader_cost: 0.00210 s, batch_cost: 0.67224 s, samples: 160, ips: 23.80112\n",
      "[2022/02/27 10:32:24] root INFO: epoch: [1/1], iter: 140, lr: 0.001000, loss: 1.189484, loss_shrink_maps: 0.666288, loss_threshold_maps: 0.436816, loss_binary_maps: 0.082445, reader_cost: 0.02483 s, batch_cost: 0.64720 s, samples: 160, ips: 24.72188\n",
      "[2022/02/27 10:32:30] root INFO: epoch: [1/1], iter: 150, lr: 0.001000, loss: 1.101823, loss_shrink_maps: 0.563748, loss_threshold_maps: 0.440805, loss_binary_maps: 0.079349, reader_cost: 0.00216 s, batch_cost: 0.63422 s, samples: 160, ips: 25.22774\n",
      "[2022/02/27 10:32:37] root INFO: epoch: [1/1], iter: 160, lr: 0.001000, loss: 1.066521, loss_shrink_maps: 0.543066, loss_threshold_maps: 0.437376, loss_binary_maps: 0.074489, reader_cost: 0.00212 s, batch_cost: 0.66871 s, samples: 160, ips: 23.92663\n",
      "[2022/02/27 10:32:44] root INFO: epoch: [1/1], iter: 170, lr: 0.001000, loss: 1.064011, loss_shrink_maps: 0.539306, loss_threshold_maps: 0.425598, loss_binary_maps: 0.075332, reader_cost: 0.00220 s, batch_cost: 0.60023 s, samples: 160, ips: 26.65657\n",
      "[2022/02/27 10:32:51] root INFO: epoch: [1/1], iter: 180, lr: 0.001000, loss: 1.019163, loss_shrink_maps: 0.524017, loss_threshold_maps: 0.414274, loss_binary_maps: 0.074798, reader_cost: 0.00455 s, batch_cost: 0.67463 s, samples: 160, ips: 23.71678\n",
      "[2022/02/27 10:32:57] root INFO: epoch: [1/1], iter: 190, lr: 0.001000, loss: 0.972935, loss_shrink_maps: 0.508149, loss_threshold_maps: 0.406353, loss_binary_maps: 0.070507, reader_cost: 0.00396 s, batch_cost: 0.60533 s, samples: 160, ips: 26.43166\n",
      "[2022/02/27 10:33:04] root INFO: epoch: [1/1], iter: 200, lr: 0.001000, loss: 0.941226, loss_shrink_maps: 0.465355, loss_threshold_maps: 0.393460, loss_binary_maps: 0.066580, reader_cost: 0.00316 s, batch_cost: 0.61924 s, samples: 160, ips: 25.83795\n",
      "[2022/02/27 10:33:11] root INFO: epoch: [1/1], iter: 210, lr: 0.001000, loss: 0.892547, loss_shrink_maps: 0.425543, loss_threshold_maps: 0.386873, loss_binary_maps: 0.065392, reader_cost: 0.00590 s, batch_cost: 0.67871 s, samples: 160, ips: 23.57411\n",
      "[2022/02/27 10:33:18] root INFO: epoch: [1/1], iter: 220, lr: 0.001000, loss: 0.834349, loss_shrink_maps: 0.397819, loss_threshold_maps: 0.382523, loss_binary_maps: 0.063747, reader_cost: 0.00589 s, batch_cost: 0.61323 s, samples: 160, ips: 26.09154\n",
      "[2022/02/27 10:33:25] root INFO: epoch: [1/1], iter: 230, lr: 0.001000, loss: 0.906338, loss_shrink_maps: 0.417402, loss_threshold_maps: 0.410368, loss_binary_maps: 0.065326, reader_cost: 0.00317 s, batch_cost: 0.66127 s, samples: 160, ips: 24.19592\n",
      "[2022/02/27 10:33:31] root INFO: epoch: [1/1], iter: 240, lr: 0.001000, loss: 0.903614, loss_shrink_maps: 0.408756, loss_threshold_maps: 0.410368, loss_binary_maps: 0.065446, reader_cost: 0.00416 s, batch_cost: 0.55910 s, samples: 160, ips: 28.61736\n",
      "[2022/02/27 10:33:38] root INFO: epoch: [1/1], iter: 250, lr: 0.001000, loss: 0.807449, loss_shrink_maps: 0.373492, loss_threshold_maps: 0.379227, loss_binary_maps: 0.059563, reader_cost: 0.11060 s, batch_cost: 0.70089 s, samples: 160, ips: 22.82823\n",
      "[2022/02/27 10:33:45] root INFO: epoch: [1/1], iter: 260, lr: 0.001000, loss: 0.788826, loss_shrink_maps: 0.347872, loss_threshold_maps: 0.370162, loss_binary_maps: 0.056010, reader_cost: 0.03403 s, batch_cost: 0.69131 s, samples: 160, ips: 23.14438\n",
      "[2022/02/27 10:33:52] root INFO: epoch: [1/1], iter: 270, lr: 0.001000, loss: 0.746560, loss_shrink_maps: 0.327605, loss_threshold_maps: 0.366188, loss_binary_maps: 0.053046, reader_cost: 0.00412 s, batch_cost: 0.61190 s, samples: 160, ips: 26.14810\n",
      "[2022/02/27 10:33:59] root INFO: epoch: [1/1], iter: 280, lr: 0.001000, loss: 0.753488, loss_shrink_maps: 0.333869, loss_threshold_maps: 0.363272, loss_binary_maps: 0.055534, reader_cost: 0.00351 s, batch_cost: 0.71574 s, samples: 160, ips: 22.35462\n",
      "[2022/02/27 10:34:06] root INFO: epoch: [1/1], iter: 290, lr: 0.001000, loss: 0.770324, loss_shrink_maps: 0.324581, loss_threshold_maps: 0.351824, loss_binary_maps: 0.053429, reader_cost: 0.00119 s, batch_cost: 0.69538 s, samples: 160, ips: 23.00906\n",
      "[2022/02/27 10:34:13] root INFO: epoch: [1/1], iter: 300, lr: 0.001000, loss: 0.723978, loss_shrink_maps: 0.316902, loss_threshold_maps: 0.353233, loss_binary_maps: 0.052929, reader_cost: 0.00222 s, batch_cost: 0.60943 s, samples: 160, ips: 26.25401\n",
      "[2022/02/27 10:34:19] root INFO: epoch: [1/1], iter: 310, lr: 0.001000, loss: 0.741708, loss_shrink_maps: 0.316902, loss_threshold_maps: 0.372156, loss_binary_maps: 0.053073, reader_cost: 0.00325 s, batch_cost: 0.63105 s, samples: 160, ips: 25.35446\n",
      "[2022/02/27 10:34:26] root INFO: epoch: [1/1], iter: 320, lr: 0.001000, loss: 0.751227, loss_shrink_maps: 0.335440, loss_threshold_maps: 0.354704, loss_binary_maps: 0.053729, reader_cost: 0.00209 s, batch_cost: 0.66542 s, samples: 160, ips: 24.04483\n",
      "[2022/02/27 10:34:33] root INFO: epoch: [1/1], iter: 330, lr: 0.001000, loss: 0.728348, loss_shrink_maps: 0.331962, loss_threshold_maps: 0.347030, loss_binary_maps: 0.054727, reader_cost: 0.02109 s, batch_cost: 0.63997 s, samples: 160, ips: 25.00132\n",
      "[2022/02/27 10:34:40] root INFO: epoch: [1/1], iter: 340, lr: 0.001000, loss: 0.703200, loss_shrink_maps: 0.318197, loss_threshold_maps: 0.332741, loss_binary_maps: 0.054127, reader_cost: 0.03650 s, batch_cost: 0.67736 s, samples: 160, ips: 23.62096\n",
      "[2022/02/27 10:34:46] root INFO: epoch: [1/1], iter: 350, lr: 0.001000, loss: 0.747845, loss_shrink_maps: 0.340647, loss_threshold_maps: 0.350938, loss_binary_maps: 0.058037, reader_cost: 0.00310 s, batch_cost: 0.65672 s, samples: 160, ips: 24.36334\n",
      "[2022/02/27 10:34:53] root INFO: epoch: [1/1], iter: 360, lr: 0.001000, loss: 0.786697, loss_shrink_maps: 0.368399, loss_threshold_maps: 0.367079, loss_binary_maps: 0.064783, reader_cost: 0.03634 s, batch_cost: 0.63763 s, samples: 160, ips: 25.09290\n",
      "[2022/02/27 10:35:00] root INFO: epoch: [1/1], iter: 370, lr: 0.001000, loss: 0.749810, loss_shrink_maps: 0.343205, loss_threshold_maps: 0.348258, loss_binary_maps: 0.059550, reader_cost: 0.00245 s, batch_cost: 0.62970 s, samples: 160, ips: 25.40892\n",
      "[2022/02/27 10:35:07] root INFO: epoch: [1/1], iter: 380, lr: 0.001000, loss: 0.685629, loss_shrink_maps: 0.291055, loss_threshold_maps: 0.338197, loss_binary_maps: 0.052302, reader_cost: 0.00332 s, batch_cost: 0.65891 s, samples: 160, ips: 24.28236\n",
      "[2022/02/27 10:35:13] root INFO: epoch: [1/1], iter: 390, lr: 0.001000, loss: 0.668051, loss_shrink_maps: 0.289670, loss_threshold_maps: 0.335017, loss_binary_maps: 0.051423, reader_cost: 0.00308 s, batch_cost: 0.60080 s, samples: 160, ips: 26.63129\n",
      "[2022/02/27 10:35:20] root INFO: epoch: [1/1], iter: 400, lr: 0.001000, loss: 0.662558, loss_shrink_maps: 0.292047, loss_threshold_maps: 0.327904, loss_binary_maps: 0.052114, reader_cost: 0.00317 s, batch_cost: 0.68825 s, samples: 160, ips: 23.24745\n",
      "[2022/02/27 10:35:27] root INFO: epoch: [1/1], iter: 410, lr: 0.001000, loss: 0.643324, loss_shrink_maps: 0.266624, loss_threshold_maps: 0.322301, loss_binary_maps: 0.048793, reader_cost: 0.00213 s, batch_cost: 0.64509 s, samples: 160, ips: 24.80282\n",
      "[2022/02/27 10:35:34] root INFO: epoch: [1/1], iter: 420, lr: 0.001000, loss: 0.641262, loss_shrink_maps: 0.268299, loss_threshold_maps: 0.326457, loss_binary_maps: 0.048793, reader_cost: 0.05958 s, batch_cost: 0.70613 s, samples: 160, ips: 22.65874\n",
      "[2022/02/27 10:35:41] root INFO: epoch: [1/1], iter: 430, lr: 0.001000, loss: 0.645156, loss_shrink_maps: 0.274072, loss_threshold_maps: 0.326019, loss_binary_maps: 0.048183, reader_cost: 0.02087 s, batch_cost: 0.63371 s, samples: 160, ips: 25.24822\n",
      "[2022/02/27 10:35:48] root INFO: epoch: [1/1], iter: 440, lr: 0.001000, loss: 0.645348, loss_shrink_maps: 0.279796, loss_threshold_maps: 0.314722, loss_binary_maps: 0.051040, reader_cost: 0.00505 s, batch_cost: 0.66074 s, samples: 160, ips: 24.21524\n",
      "[2022/02/27 10:35:54] root INFO: epoch: [1/1], iter: 450, lr: 0.001000, loss: 0.650112, loss_shrink_maps: 0.274942, loss_threshold_maps: 0.315858, loss_binary_maps: 0.050553, reader_cost: 0.00281 s, batch_cost: 0.60759 s, samples: 160, ips: 26.33339\n",
      "[2022/02/27 10:36:01] root INFO: epoch: [1/1], iter: 460, lr: 0.001000, loss: 0.638469, loss_shrink_maps: 0.256762, loss_threshold_maps: 0.317676, loss_binary_maps: 0.047706, reader_cost: 0.09184 s, batch_cost: 0.73038 s, samples: 160, ips: 21.90647\n",
      "[2022/02/27 10:36:08] root INFO: epoch: [1/1], iter: 470, lr: 0.001000, loss: 0.624087, loss_shrink_maps: 0.256952, loss_threshold_maps: 0.323262, loss_binary_maps: 0.048152, reader_cost: 0.00413 s, batch_cost: 0.61835 s, samples: 160, ips: 25.87517\n",
      "[2022/02/27 10:36:15] root INFO: epoch: [1/1], iter: 480, lr: 0.001000, loss: 0.620511, loss_shrink_maps: 0.259992, loss_threshold_maps: 0.309611, loss_binary_maps: 0.048739, reader_cost: 0.00372 s, batch_cost: 0.67720 s, samples: 160, ips: 23.62656\n",
      "[2022/02/27 10:36:22] root INFO: epoch: [1/1], iter: 490, lr: 0.001000, loss: 0.596889, loss_shrink_maps: 0.252998, loss_threshold_maps: 0.305124, loss_binary_maps: 0.047397, reader_cost: 0.00145 s, batch_cost: 0.66220 s, samples: 160, ips: 24.16194\n",
      "[2022/02/27 10:36:29] root INFO: epoch: [1/1], iter: 500, lr: 0.001000, loss: 0.621188, loss_shrink_maps: 0.259543, loss_threshold_maps: 0.319853, loss_binary_maps: 0.048902, reader_cost: 0.04063 s, batch_cost: 0.66027 s, samples: 160, ips: 24.23241\n",
      "[2022/02/27 10:36:35] root INFO: epoch: [1/1], iter: 510, lr: 0.001000, loss: 0.603114, loss_shrink_maps: 0.249888, loss_threshold_maps: 0.325146, loss_binary_maps: 0.047983, reader_cost: 0.03852 s, batch_cost: 0.63352 s, samples: 160, ips: 25.25565\n",
      "[2022/02/27 10:36:43] root INFO: epoch: [1/1], iter: 520, lr: 0.001000, loss: 0.596045, loss_shrink_maps: 0.242755, loss_threshold_maps: 0.315100, loss_binary_maps: 0.045487, reader_cost: 0.00027 s, batch_cost: 0.76049 s, samples: 160, ips: 21.03897\n",
      "[2022/02/27 10:36:50] root INFO: epoch: [1/1], iter: 530, lr: 0.001000, loss: 0.602448, loss_shrink_maps: 0.241916, loss_threshold_maps: 0.314266, loss_binary_maps: 0.045462, reader_cost: 0.00622 s, batch_cost: 0.64251 s, samples: 160, ips: 24.90252\n",
      "[2022/02/27 10:36:57] root INFO: epoch: [1/1], iter: 540, lr: 0.001000, loss: 0.596138, loss_shrink_maps: 0.237847, loss_threshold_maps: 0.306845, loss_binary_maps: 0.045180, reader_cost: 0.03742 s, batch_cost: 0.70308 s, samples: 160, ips: 22.75694\n",
      "[2022/02/27 10:37:03] root INFO: epoch: [1/1], iter: 550, lr: 0.001000, loss: 0.594964, loss_shrink_maps: 0.237837, loss_threshold_maps: 0.306845, loss_binary_maps: 0.045180, reader_cost: 0.00311 s, batch_cost: 0.67155 s, samples: 160, ips: 23.82547\n",
      "[2022/02/27 10:37:10] root INFO: epoch: [1/1], iter: 560, lr: 0.001000, loss: 0.598621, loss_shrink_maps: 0.248178, loss_threshold_maps: 0.283358, loss_binary_maps: 0.047191, reader_cost: 0.00368 s, batch_cost: 0.66420 s, samples: 160, ips: 24.08923\n",
      "[2022/02/27 10:37:17] root INFO: epoch: [1/1], iter: 570, lr: 0.001000, loss: 0.583158, loss_shrink_maps: 0.253273, loss_threshold_maps: 0.278158, loss_binary_maps: 0.048448, reader_cost: 0.03849 s, batch_cost: 0.61829 s, samples: 160, ips: 25.87776\n",
      "[2022/02/27 10:37:24] root INFO: epoch: [1/1], iter: 580, lr: 0.001000, loss: 0.573039, loss_shrink_maps: 0.242910, loss_threshold_maps: 0.279940, loss_binary_maps: 0.046367, reader_cost: 0.09429 s, batch_cost: 0.70857 s, samples: 160, ips: 22.58075\n",
      "[2022/02/27 10:37:31] root INFO: epoch: [1/1], iter: 590, lr: 0.001000, loss: 0.560375, loss_shrink_maps: 0.242863, loss_threshold_maps: 0.281010, loss_binary_maps: 0.046283, reader_cost: 0.00230 s, batch_cost: 0.62521 s, samples: 160, ips: 25.59140\n",
      "[2022/02/27 10:37:38] root INFO: epoch: [1/1], iter: 600, lr: 0.001000, loss: 0.557236, loss_shrink_maps: 0.238661, loss_threshold_maps: 0.273972, loss_binary_maps: 0.046180, reader_cost: 0.01182 s, batch_cost: 0.59558 s, samples: 160, ips: 26.86451\n",
      "[2022/02/27 10:37:44] root INFO: epoch: [1/1], iter: 610, lr: 0.001000, loss: 0.554994, loss_shrink_maps: 0.234058, loss_threshold_maps: 0.283455, loss_binary_maps: 0.044299, reader_cost: 0.00573 s, batch_cost: 0.63968 s, samples: 160, ips: 25.01238\n",
      "[2022/02/27 10:37:51] root INFO: epoch: [1/1], iter: 620, lr: 0.001000, loss: 0.551966, loss_shrink_maps: 0.229991, loss_threshold_maps: 0.289902, loss_binary_maps: 0.045021, reader_cost: 0.00025 s, batch_cost: 0.67575 s, samples: 160, ips: 23.67749\n",
      "[2022/02/27 10:37:58] root INFO: epoch: [1/1], iter: 630, lr: 0.001000, loss: 0.551966, loss_shrink_maps: 0.233443, loss_threshold_maps: 0.276866, loss_binary_maps: 0.045021, reader_cost: 0.00117 s, batch_cost: 0.65008 s, samples: 160, ips: 24.61239\n",
      "[2022/02/27 10:38:04] root INFO: epoch: [1/1], iter: 640, lr: 0.001000, loss: 0.529584, loss_shrink_maps: 0.219866, loss_threshold_maps: 0.269484, loss_binary_maps: 0.042509, reader_cost: 0.00345 s, batch_cost: 0.64912 s, samples: 160, ips: 24.64863\n",
      "[2022/02/27 10:38:11] root INFO: epoch: [1/1], iter: 650, lr: 0.001000, loss: 0.537090, loss_shrink_maps: 0.222641, loss_threshold_maps: 0.271231, loss_binary_maps: 0.042924, reader_cost: 0.00258 s, batch_cost: 0.61657 s, samples: 160, ips: 25.95018\n",
      "[2022/02/27 10:38:18] root INFO: epoch: [1/1], iter: 660, lr: 0.001000, loss: 0.533400, loss_shrink_maps: 0.223176, loss_threshold_maps: 0.265882, loss_binary_maps: 0.043327, reader_cost: 0.07037 s, batch_cost: 0.70940 s, samples: 160, ips: 22.55437\n",
      "[2022/02/27 10:38:25] root INFO: epoch: [1/1], iter: 670, lr: 0.001000, loss: 0.511719, loss_shrink_maps: 0.215370, loss_threshold_maps: 0.261726, loss_binary_maps: 0.041797, reader_cost: 0.00340 s, batch_cost: 0.62775 s, samples: 160, ips: 25.48768\n",
      "[2022/02/27 10:38:32] root INFO: epoch: [1/1], iter: 680, lr: 0.001000, loss: 0.515466, loss_shrink_maps: 0.213450, loss_threshold_maps: 0.264810, loss_binary_maps: 0.040888, reader_cost: 0.00209 s, batch_cost: 0.64703 s, samples: 160, ips: 24.72827\n",
      "[2022/02/27 10:38:38] root INFO: epoch: [1/1], iter: 690, lr: 0.001000, loss: 0.505808, loss_shrink_maps: 0.212247, loss_threshold_maps: 0.254524, loss_binary_maps: 0.041141, reader_cost: 0.00288 s, batch_cost: 0.62457 s, samples: 160, ips: 25.61747\n",
      "[2022/02/27 10:38:46] root INFO: epoch: [1/1], iter: 700, lr: 0.001000, loss: 0.508973, loss_shrink_maps: 0.215925, loss_threshold_maps: 0.258015, loss_binary_maps: 0.041455, reader_cost: 0.18420 s, batch_cost: 0.73973 s, samples: 160, ips: 21.62963\n",
      "[2022/02/27 10:38:53] root INFO: epoch: [1/1], iter: 710, lr: 0.001000, loss: 0.526384, loss_shrink_maps: 0.215411, loss_threshold_maps: 0.266725, loss_binary_maps: 0.040937, reader_cost: 0.00213 s, batch_cost: 0.65162 s, samples: 160, ips: 24.55431\n",
      "[2022/02/27 10:39:00] root INFO: epoch: [1/1], iter: 720, lr: 0.001000, loss: 0.555386, loss_shrink_maps: 0.223658, loss_threshold_maps: 0.284192, loss_binary_maps: 0.043202, reader_cost: 0.03609 s, batch_cost: 0.71283 s, samples: 160, ips: 22.44581\n",
      "[2022/02/27 10:39:07] root INFO: epoch: [1/1], iter: 730, lr: 0.001000, loss: 0.587575, loss_shrink_maps: 0.232531, loss_threshold_maps: 0.296347, loss_binary_maps: 0.045833, reader_cost: 0.14564 s, batch_cost: 0.70572 s, samples: 160, ips: 22.67202\n",
      "[2022/02/27 10:39:14] root INFO: epoch: [1/1], iter: 740, lr: 0.001000, loss: 0.552275, loss_shrink_maps: 0.223911, loss_threshold_maps: 0.276747, loss_binary_maps: 0.043474, reader_cost: 0.03608 s, batch_cost: 0.66628 s, samples: 160, ips: 24.01401\n",
      "[2022/02/27 10:39:21] root INFO: epoch: [1/1], iter: 750, lr: 0.001000, loss: 0.559966, loss_shrink_maps: 0.223075, loss_threshold_maps: 0.276747, loss_binary_maps: 0.043323, reader_cost: 0.00129 s, batch_cost: 0.65831 s, samples: 160, ips: 24.30465\n",
      "[2022/02/27 10:39:28] root INFO: epoch: [1/1], iter: 760, lr: 0.001000, loss: 0.528640, loss_shrink_maps: 0.216199, loss_threshold_maps: 0.271415, loss_binary_maps: 0.041933, reader_cost: 0.00629 s, batch_cost: 0.65731 s, samples: 160, ips: 24.34167\n",
      "[2022/02/27 10:39:34] root INFO: epoch: [1/1], iter: 770, lr: 0.001000, loss: 0.517859, loss_shrink_maps: 0.212931, loss_threshold_maps: 0.265025, loss_binary_maps: 0.041197, reader_cost: 0.02153 s, batch_cost: 0.60896 s, samples: 160, ips: 26.27436\n",
      "[2022/02/27 10:39:41] root INFO: epoch: [1/1], iter: 780, lr: 0.001000, loss: 0.509519, loss_shrink_maps: 0.209900, loss_threshold_maps: 0.257464, loss_binary_maps: 0.040591, reader_cost: 0.03601 s, batch_cost: 0.63926 s, samples: 160, ips: 25.02897\n",
      "[2022/02/27 10:39:48] root INFO: epoch: [1/1], iter: 790, lr: 0.001000, loss: 0.499867, loss_shrink_maps: 0.208482, loss_threshold_maps: 0.246766, loss_binary_maps: 0.040978, reader_cost: 0.00725 s, batch_cost: 0.63846 s, samples: 160, ips: 25.06030\n",
      "[2022/02/27 10:39:55] root INFO: epoch: [1/1], iter: 800, lr: 0.001000, loss: 0.527964, loss_shrink_maps: 0.218654, loss_threshold_maps: 0.257366, loss_binary_maps: 0.042508, reader_cost: 0.00517 s, batch_cost: 0.63404 s, samples: 160, ips: 25.23481\n",
      "[2022/02/27 10:40:01] root INFO: epoch: [1/1], iter: 810, lr: 0.001000, loss: 0.528765, loss_shrink_maps: 0.218654, loss_threshold_maps: 0.263887, loss_binary_maps: 0.041936, reader_cost: 0.04008 s, batch_cost: 0.59410 s, samples: 160, ips: 26.93135\n",
      "[2022/02/27 10:40:08] root INFO: epoch: [1/1], iter: 820, lr: 0.001000, loss: 0.537897, loss_shrink_maps: 0.210665, loss_threshold_maps: 0.274367, loss_binary_maps: 0.041132, reader_cost: 0.06011 s, batch_cost: 0.72646 s, samples: 160, ips: 22.02464\n",
      "[2022/02/27 10:40:15] root INFO: epoch: [1/1], iter: 830, lr: 0.001000, loss: 0.518947, loss_shrink_maps: 0.215878, loss_threshold_maps: 0.254560, loss_binary_maps: 0.041675, reader_cost: 0.00514 s, batch_cost: 0.63754 s, samples: 160, ips: 25.09630\n",
      "[2022/02/27 10:40:22] root INFO: epoch: [1/1], iter: 840, lr: 0.001000, loss: 0.505640, loss_shrink_maps: 0.218338, loss_threshold_maps: 0.249922, loss_binary_maps: 0.042256, reader_cost: 0.00471 s, batch_cost: 0.64787 s, samples: 160, ips: 24.69637\n",
      "[2022/02/27 10:40:29] root INFO: epoch: [1/1], iter: 850, lr: 0.001000, loss: 0.509360, loss_shrink_maps: 0.218884, loss_threshold_maps: 0.251345, loss_binary_maps: 0.043140, reader_cost: 0.00305 s, batch_cost: 0.69096 s, samples: 160, ips: 23.15612\n",
      "[2022/02/27 10:40:35] root INFO: epoch: [1/1], iter: 860, lr: 0.001000, loss: 0.525676, loss_shrink_maps: 0.219323, loss_threshold_maps: 0.264644, loss_binary_maps: 0.042947, reader_cost: 0.00345 s, batch_cost: 0.65079 s, samples: 160, ips: 24.58567\n",
      "[2022/02/27 10:40:42] root INFO: epoch: [1/1], iter: 870, lr: 0.001000, loss: 0.540791, loss_shrink_maps: 0.224267, loss_threshold_maps: 0.274772, loss_binary_maps: 0.043504, reader_cost: 0.00535 s, batch_cost: 0.63169 s, samples: 160, ips: 25.32876\n",
      "[2022/02/27 10:40:48] root INFO: epoch: [1/1], iter: 880, lr: 0.001000, loss: 0.526058, loss_shrink_maps: 0.224688, loss_threshold_maps: 0.259836, loss_binary_maps: 0.043964, reader_cost: 0.00539 s, batch_cost: 0.57872 s, samples: 160, ips: 27.64710\n",
      "[2022/02/27 10:40:55] root INFO: epoch: [1/1], iter: 890, lr: 0.001000, loss: 0.520262, loss_shrink_maps: 0.220827, loss_threshold_maps: 0.256264, loss_binary_maps: 0.043079, reader_cost: 0.02475 s, batch_cost: 0.66639 s, samples: 160, ips: 24.01003\n",
      "[2022/02/27 10:41:02] root INFO: epoch: [1/1], iter: 900, lr: 0.001000, loss: 0.516103, loss_shrink_maps: 0.217317, loss_threshold_maps: 0.264582, loss_binary_maps: 0.042366, reader_cost: 0.03846 s, batch_cost: 0.67748 s, samples: 160, ips: 23.61680\n",
      "[2022/02/27 10:41:09] root INFO: epoch: [1/1], iter: 910, lr: 0.001000, loss: 0.505764, loss_shrink_maps: 0.200807, loss_threshold_maps: 0.261863, loss_binary_maps: 0.039170, reader_cost: 0.00137 s, batch_cost: 0.66091 s, samples: 160, ips: 24.20887\n",
      "[2022/02/27 10:41:15] root INFO: epoch: [1/1], iter: 920, lr: 0.001000, loss: 0.495620, loss_shrink_maps: 0.203164, loss_threshold_maps: 0.248387, loss_binary_maps: 0.039177, reader_cost: 0.00230 s, batch_cost: 0.63720 s, samples: 160, ips: 25.10996\n",
      "[2022/02/27 10:41:22] root INFO: epoch: [1/1], iter: 930, lr: 0.001000, loss: 0.489076, loss_shrink_maps: 0.205194, loss_threshold_maps: 0.241327, loss_binary_maps: 0.040351, reader_cost: 0.07358 s, batch_cost: 0.68008 s, samples: 160, ips: 23.52664\n",
      "[2022/02/27 10:41:29] root INFO: epoch: [1/1], iter: 940, lr: 0.001000, loss: 0.494750, loss_shrink_maps: 0.205476, loss_threshold_maps: 0.250950, loss_binary_maps: 0.040351, reader_cost: 0.00578 s, batch_cost: 0.63504 s, samples: 160, ips: 25.19540\n",
      "[2022/02/27 10:41:36] root INFO: epoch: [1/1], iter: 950, lr: 0.001000, loss: 0.475422, loss_shrink_maps: 0.194174, loss_threshold_maps: 0.244875, loss_binary_maps: 0.038038, reader_cost: 0.00793 s, batch_cost: 0.62650 s, samples: 160, ips: 25.53868\n",
      "[2022/02/27 10:41:43] root INFO: epoch: [1/1], iter: 960, lr: 0.001000, loss: 0.466032, loss_shrink_maps: 0.190312, loss_threshold_maps: 0.238034, loss_binary_maps: 0.036793, reader_cost: 0.03878 s, batch_cost: 0.60118 s, samples: 160, ips: 26.61414\n",
      "[2022/02/27 10:41:50] root INFO: epoch: [1/1], iter: 970, lr: 0.001000, loss: 0.466764, loss_shrink_maps: 0.197884, loss_threshold_maps: 0.238708, loss_binary_maps: 0.038432, reader_cost: 0.05539 s, batch_cost: 0.68071 s, samples: 160, ips: 23.50479\n",
      "[2022/02/27 10:41:57] root INFO: epoch: [1/1], iter: 980, lr: 0.001000, loss: 0.489742, loss_shrink_maps: 0.198272, loss_threshold_maps: 0.243133, loss_binary_maps: 0.038784, reader_cost: 0.08798 s, batch_cost: 0.75167 s, samples: 160, ips: 21.28597\n",
      "[2022/02/27 10:42:04] root INFO: epoch: [1/1], iter: 990, lr: 0.001000, loss: 0.483214, loss_shrink_maps: 0.198756, loss_threshold_maps: 0.245975, loss_binary_maps: 0.038784, reader_cost: 0.00120 s, batch_cost: 0.63733 s, samples: 160, ips: 25.10486\n",
      "[2022/02/27 10:42:11] root INFO: epoch: [1/1], iter: 1000, lr: 0.001000, loss: 0.459095, loss_shrink_maps: 0.196901, loss_threshold_maps: 0.222906, loss_binary_maps: 0.038196, reader_cost: 0.00344 s, batch_cost: 0.65768 s, samples: 160, ips: 24.32793\n",
      "[2022/02/27 10:42:17] root INFO: epoch: [1/1], iter: 1010, lr: 0.001000, loss: 0.491476, loss_shrink_maps: 0.219235, loss_threshold_maps: 0.232036, loss_binary_maps: 0.042774, reader_cost: 0.00351 s, batch_cost: 0.67099 s, samples: 160, ips: 23.84519\n",
      "[2022/02/27 10:42:24] root INFO: epoch: [1/1], iter: 1020, lr: 0.001000, loss: 0.506552, loss_shrink_maps: 0.218780, loss_threshold_maps: 0.241518, loss_binary_maps: 0.043056, reader_cost: 0.00583 s, batch_cost: 0.69246 s, samples: 160, ips: 23.10611\n",
      "[2022/02/27 10:42:31] root INFO: epoch: [1/1], iter: 1030, lr: 0.001000, loss: 0.497222, loss_shrink_maps: 0.208307, loss_threshold_maps: 0.244681, loss_binary_maps: 0.041001, reader_cost: 0.00343 s, batch_cost: 0.63635 s, samples: 160, ips: 25.14350\n",
      "[2022/02/27 10:42:38] root INFO: epoch: [1/1], iter: 1040, lr: 0.001000, loss: 0.490692, loss_shrink_maps: 0.209157, loss_threshold_maps: 0.244522, loss_binary_maps: 0.041237, reader_cost: 0.00558 s, batch_cost: 0.64447 s, samples: 160, ips: 24.82658\n",
      "[2022/02/27 10:42:44] root INFO: epoch: [1/1], iter: 1050, lr: 0.001000, loss: 0.481388, loss_shrink_maps: 0.202679, loss_threshold_maps: 0.236683, loss_binary_maps: 0.039611, reader_cost: 0.00644 s, batch_cost: 0.64130 s, samples: 160, ips: 24.94919\n",
      "[2022/02/27 10:42:52] root INFO: epoch: [1/1], iter: 1060, lr: 0.001000, loss: 0.467851, loss_shrink_maps: 0.196204, loss_threshold_maps: 0.232791, loss_binary_maps: 0.038782, reader_cost: 0.22611 s, batch_cost: 0.74544 s, samples: 160, ips: 21.46372\n",
      "[2022/02/27 10:42:59] root INFO: epoch: [1/1], iter: 1070, lr: 0.001000, loss: 0.465641, loss_shrink_maps: 0.194659, loss_threshold_maps: 0.232321, loss_binary_maps: 0.038465, reader_cost: 0.00873 s, batch_cost: 0.63394 s, samples: 160, ips: 25.23899\n",
      "[2022/02/27 10:43:06] root INFO: epoch: [1/1], iter: 1080, lr: 0.001000, loss: 0.475769, loss_shrink_maps: 0.197233, loss_threshold_maps: 0.237601, loss_binary_maps: 0.038946, reader_cost: 0.00898 s, batch_cost: 0.67579 s, samples: 160, ips: 23.67585\n",
      "[2022/02/27 10:43:13] root INFO: epoch: [1/1], iter: 1090, lr: 0.001000, loss: 0.492659, loss_shrink_maps: 0.203230, loss_threshold_maps: 0.243325, loss_binary_maps: 0.040094, reader_cost: 0.00348 s, batch_cost: 0.64683 s, samples: 160, ips: 24.73607\n",
      "[2022/02/27 10:43:20] root INFO: epoch: [1/1], iter: 1100, lr: 0.001000, loss: 0.496422, loss_shrink_maps: 0.203694, loss_threshold_maps: 0.248993, loss_binary_maps: 0.040390, reader_cost: 0.04060 s, batch_cost: 0.66167 s, samples: 160, ips: 24.18111\n",
      "[2022/02/27 10:43:26] root INFO: epoch: [1/1], iter: 1110, lr: 0.001000, loss: 0.492163, loss_shrink_maps: 0.202388, loss_threshold_maps: 0.247337, loss_binary_maps: 0.039535, reader_cost: 0.00301 s, batch_cost: 0.63262 s, samples: 160, ips: 25.29177\n",
      "[2022/02/27 10:43:33] root INFO: epoch: [1/1], iter: 1120, lr: 0.001000, loss: 0.462124, loss_shrink_maps: 0.186652, loss_threshold_maps: 0.235124, loss_binary_maps: 0.036853, reader_cost: 0.03603 s, batch_cost: 0.67132 s, samples: 160, ips: 23.83360\n",
      "[2022/02/27 10:43:40] root INFO: epoch: [1/1], iter: 1130, lr: 0.001000, loss: 0.462124, loss_shrink_maps: 0.184906, loss_threshold_maps: 0.228637, loss_binary_maps: 0.036605, reader_cost: 0.01491 s, batch_cost: 0.62590 s, samples: 160, ips: 25.56310\n",
      "[2022/02/27 10:43:47] root INFO: epoch: [1/1], iter: 1140, lr: 0.001000, loss: 0.477566, loss_shrink_maps: 0.195049, loss_threshold_maps: 0.235464, loss_binary_maps: 0.038703, reader_cost: 0.00265 s, batch_cost: 0.70392 s, samples: 160, ips: 22.72971\n",
      "[2022/02/27 10:43:53] root INFO: epoch: [1/1], iter: 1150, lr: 0.001000, loss: 0.498285, loss_shrink_maps: 0.206094, loss_threshold_maps: 0.245177, loss_binary_maps: 0.040424, reader_cost: 0.00492 s, batch_cost: 0.61131 s, samples: 160, ips: 26.17312\n",
      "[2022/02/27 10:44:01] root INFO: epoch: [1/1], iter: 1160, lr: 0.001000, loss: 0.502845, loss_shrink_maps: 0.209177, loss_threshold_maps: 0.248201, loss_binary_maps: 0.041185, reader_cost: 0.00462 s, batch_cost: 0.75177 s, samples: 160, ips: 21.28306\n",
      "[2022/02/27 10:44:08] root INFO: epoch: [1/1], iter: 1170, lr: 0.001000, loss: 0.494533, loss_shrink_maps: 0.210404, loss_threshold_maps: 0.239164, loss_binary_maps: 0.041525, reader_cost: 0.04034 s, batch_cost: 0.65146 s, samples: 160, ips: 24.56036\n",
      "[2022/02/27 10:44:15] root INFO: epoch: [1/1], iter: 1180, lr: 0.001000, loss: 0.442600, loss_shrink_maps: 0.187907, loss_threshold_maps: 0.220153, loss_binary_maps: 0.037322, reader_cost: 0.13251 s, batch_cost: 0.68787 s, samples: 160, ips: 23.26015\n",
      "[2022/02/27 10:44:22] root INFO: epoch: [1/1], iter: 1190, lr: 0.001000, loss: 0.435111, loss_shrink_maps: 0.187907, loss_threshold_maps: 0.212585, loss_binary_maps: 0.037304, reader_cost: 0.00808 s, batch_cost: 0.58983 s, samples: 160, ips: 27.12666\n",
      "[2022/02/27 10:44:29] root INFO: epoch: [1/1], iter: 1200, lr: 0.001000, loss: 0.428418, loss_shrink_maps: 0.185259, loss_threshold_maps: 0.212130, loss_binary_maps: 0.036567, reader_cost: 0.00160 s, batch_cost: 0.68966 s, samples: 160, ips: 23.19990\n",
      "[2022/02/27 10:44:36] root INFO: epoch: [1/1], iter: 1210, lr: 0.001000, loss: 0.433508, loss_shrink_maps: 0.187828, loss_threshold_maps: 0.214345, loss_binary_maps: 0.036649, reader_cost: 0.00667 s, batch_cost: 0.59227 s, samples: 160, ips: 27.01484\n",
      "[2022/02/27 10:44:43] root INFO: epoch: [1/1], iter: 1220, lr: 0.001000, loss: 0.443874, loss_shrink_maps: 0.189286, loss_threshold_maps: 0.223252, loss_binary_maps: 0.037272, reader_cost: 0.04151 s, batch_cost: 0.66650 s, samples: 160, ips: 24.00602\n",
      "[2022/02/27 10:44:49] root INFO: epoch: [1/1], iter: 1230, lr: 0.001000, loss: 0.443253, loss_shrink_maps: 0.186416, loss_threshold_maps: 0.224042, loss_binary_maps: 0.036350, reader_cost: 0.05957 s, batch_cost: 0.65501 s, samples: 160, ips: 24.42723\n",
      "[2022/02/27 10:44:57] root INFO: epoch: [1/1], iter: 1240, lr: 0.001000, loss: 0.456529, loss_shrink_maps: 0.198983, loss_threshold_maps: 0.226198, loss_binary_maps: 0.039238, reader_cost: 0.00829 s, batch_cost: 0.67209 s, samples: 160, ips: 23.80630\n",
      "[2022/02/27 10:45:06] root INFO: epoch: [1/1], iter: 1250, lr: 0.001000, loss: 0.461047, loss_shrink_maps: 0.193920, loss_threshold_maps: 0.231383, loss_binary_maps: 0.038400, reader_cost: 0.46989 s, batch_cost: 0.88574 s, samples: 160, ips: 18.06392\n",
      "[2022/02/27 10:45:17] root INFO: epoch: [1/1], iter: 1260, lr: 0.001000, loss: 0.443716, loss_shrink_maps: 0.190004, loss_threshold_maps: 0.217620, loss_binary_maps: 0.037873, reader_cost: 0.73081 s, batch_cost: 1.12072 s, samples: 160, ips: 14.27648\n",
      "[2022/02/27 10:45:24] root INFO: epoch: [1/1], iter: 1270, lr: 0.001000, loss: 0.459343, loss_shrink_maps: 0.200238, loss_threshold_maps: 0.216610, loss_binary_maps: 0.038965, reader_cost: 0.00666 s, batch_cost: 0.63906 s, samples: 160, ips: 25.03693\n",
      "[2022/02/27 10:45:31] root INFO: epoch: [1/1], iter: 1280, lr: 0.001000, loss: 0.456777, loss_shrink_maps: 0.196320, loss_threshold_maps: 0.219905, loss_binary_maps: 0.038835, reader_cost: 0.02408 s, batch_cost: 0.66996 s, samples: 160, ips: 23.88210\n",
      "[2022/02/27 10:45:38] root INFO: epoch: [1/1], iter: 1290, lr: 0.001000, loss: 0.446299, loss_shrink_maps: 0.191093, loss_threshold_maps: 0.217705, loss_binary_maps: 0.037851, reader_cost: 0.00972 s, batch_cost: 0.60988 s, samples: 160, ips: 26.23468\n",
      "[2022/02/27 10:45:45] root INFO: epoch: [1/1], iter: 1300, lr: 0.001000, loss: 0.453617, loss_shrink_maps: 0.195180, loss_threshold_maps: 0.217651, loss_binary_maps: 0.038891, reader_cost: 0.00641 s, batch_cost: 0.65553 s, samples: 160, ips: 24.40773\n",
      "[2022/02/27 10:45:52] root INFO: epoch: [1/1], iter: 1310, lr: 0.001000, loss: 0.463838, loss_shrink_maps: 0.196563, loss_threshold_maps: 0.225765, loss_binary_maps: 0.039507, reader_cost: 0.00861 s, batch_cost: 0.66505 s, samples: 160, ips: 24.05823\n",
      "[2022/02/27 10:45:59] root INFO: epoch: [1/1], iter: 1320, lr: 0.001000, loss: 0.463838, loss_shrink_maps: 0.195549, loss_threshold_maps: 0.233465, loss_binary_maps: 0.038186, reader_cost: 0.18919 s, batch_cost: 0.60519 s, samples: 160, ips: 26.43813\n",
      "[2022/02/27 10:46:10] root INFO: epoch: [1/1], iter: 1330, lr: 0.001000, loss: 0.461383, loss_shrink_maps: 0.185194, loss_threshold_maps: 0.233737, loss_binary_maps: 0.036523, reader_cost: 0.69383 s, batch_cost: 1.13976 s, samples: 160, ips: 14.03810\n",
      "[2022/02/27 10:46:21] root INFO: epoch: [1/1], iter: 1340, lr: 0.001000, loss: 0.442724, loss_shrink_maps: 0.184989, loss_threshold_maps: 0.232150, loss_binary_maps: 0.036339, reader_cost: 0.68369 s, batch_cost: 1.06518 s, samples: 160, ips: 15.02098\n",
      "[2022/02/27 10:46:32] root INFO: epoch: [1/1], iter: 1350, lr: 0.001000, loss: 0.440969, loss_shrink_maps: 0.187164, loss_threshold_maps: 0.231413, loss_binary_maps: 0.036804, reader_cost: 0.28134 s, batch_cost: 1.10607 s, samples: 160, ips: 14.46560\n",
      "[2022/02/27 10:46:39] root INFO: epoch: [1/1], iter: 1360, lr: 0.001000, loss: 0.468141, loss_shrink_maps: 0.199590, loss_threshold_maps: 0.232135, loss_binary_maps: 0.039211, reader_cost: 0.00447 s, batch_cost: 0.57229 s, samples: 160, ips: 27.95782\n",
      "[2022/02/27 10:46:49] root INFO: epoch: [1/1], iter: 1370, lr: 0.001000, loss: 0.447048, loss_shrink_maps: 0.188535, loss_threshold_maps: 0.224728, loss_binary_maps: 0.036968, reader_cost: 0.58678 s, batch_cost: 0.96505 s, samples: 160, ips: 16.57947\n",
      "[2022/02/27 10:47:02] root INFO: epoch: [1/1], iter: 1380, lr: 0.001000, loss: 0.450978, loss_shrink_maps: 0.193858, loss_threshold_maps: 0.225981, loss_binary_maps: 0.038386, reader_cost: 0.88839 s, batch_cost: 1.37627 s, samples: 160, ips: 11.62566\n",
      "[2022/02/27 10:47:10] root INFO: epoch: [1/1], iter: 1390, lr: 0.001000, loss: 0.456600, loss_shrink_maps: 0.200675, loss_threshold_maps: 0.222402, loss_binary_maps: 0.039849, reader_cost: 0.25231 s, batch_cost: 0.71286 s, samples: 160, ips: 22.44473\n",
      "[2022/02/27 10:47:18] root INFO: epoch: [1/1], iter: 1400, lr: 0.001000, loss: 0.446141, loss_shrink_maps: 0.187484, loss_threshold_maps: 0.215522, loss_binary_maps: 0.036964, reader_cost: 0.24778 s, batch_cost: 0.67854 s, samples: 160, ips: 23.58010\n",
      "[2022/02/27 10:47:29] root INFO: epoch: [1/1], iter: 1410, lr: 0.001000, loss: 0.446769, loss_shrink_maps: 0.187829, loss_threshold_maps: 0.222342, loss_binary_maps: 0.036983, reader_cost: 0.69383 s, batch_cost: 1.11526 s, samples: 160, ips: 14.34641\n",
      "[2022/02/27 10:47:40] root INFO: epoch: [1/1], iter: 1420, lr: 0.001000, loss: 0.428537, loss_shrink_maps: 0.180171, loss_threshold_maps: 0.217989, loss_binary_maps: 0.035706, reader_cost: 0.70266 s, batch_cost: 1.06967 s, samples: 160, ips: 14.95794\n",
      "[2022/02/27 10:47:48] root INFO: epoch: [1/1], iter: 1430, lr: 0.001000, loss: 0.435553, loss_shrink_maps: 0.180578, loss_threshold_maps: 0.213302, loss_binary_maps: 0.035872, reader_cost: 0.31314 s, batch_cost: 0.74617 s, samples: 160, ips: 21.44270\n",
      "[2022/02/27 10:48:00] root INFO: epoch: [1/1], iter: 1440, lr: 0.001000, loss: 0.437090, loss_shrink_maps: 0.183816, loss_threshold_maps: 0.217598, loss_binary_maps: 0.035804, reader_cost: 0.55658 s, batch_cost: 1.09912 s, samples: 160, ips: 14.55713\n",
      "[2022/02/27 10:48:10] root INFO: epoch: [1/1], iter: 1450, lr: 0.001000, loss: 0.427792, loss_shrink_maps: 0.178161, loss_threshold_maps: 0.215667, loss_binary_maps: 0.035263, reader_cost: 0.61850 s, batch_cost: 0.98703 s, samples: 160, ips: 16.21027\n",
      "[2022/02/27 10:48:22] root INFO: epoch: [1/1], iter: 1460, lr: 0.001000, loss: 0.427712, loss_shrink_maps: 0.181762, loss_threshold_maps: 0.209484, loss_binary_maps: 0.035591, reader_cost: 0.58646 s, batch_cost: 1.14460 s, samples: 160, ips: 13.97874\n",
      "[2022/02/27 10:48:32] root INFO: epoch: [1/1], iter: 1470, lr: 0.001000, loss: 0.434056, loss_shrink_maps: 0.179964, loss_threshold_maps: 0.206511, loss_binary_maps: 0.034992, reader_cost: 0.66912 s, batch_cost: 0.97077 s, samples: 160, ips: 16.48174\n",
      "[2022/02/27 10:48:42] root INFO: epoch: [1/1], iter: 1480, lr: 0.001000, loss: 0.451130, loss_shrink_maps: 0.182720, loss_threshold_maps: 0.222355, loss_binary_maps: 0.035778, reader_cost: 0.67522 s, batch_cost: 1.04492 s, samples: 160, ips: 15.31223\n",
      "[2022/02/27 10:48:51] root INFO: epoch: [1/1], iter: 1490, lr: 0.001000, loss: 0.472036, loss_shrink_maps: 0.201950, loss_threshold_maps: 0.234922, loss_binary_maps: 0.039009, reader_cost: 0.44673 s, batch_cost: 0.85647 s, samples: 160, ips: 18.68140\n",
      "[2022/02/27 10:49:00] root INFO: epoch: [1/1], iter: 1500, lr: 0.001000, loss: 0.477250, loss_shrink_maps: 0.199154, loss_threshold_maps: 0.245617, loss_binary_maps: 0.039009, reader_cost: 0.30038 s, batch_cost: 0.87436 s, samples: 160, ips: 18.29914\n",
      "[2022/02/27 10:49:07] root INFO: epoch: [1/1], iter: 1510, lr: 0.001000, loss: 0.462235, loss_shrink_maps: 0.191933, loss_threshold_maps: 0.235936, loss_binary_maps: 0.037566, reader_cost: 0.24498 s, batch_cost: 0.67389 s, samples: 160, ips: 23.74260\n",
      "[2022/02/27 10:49:18] root INFO: epoch: [1/1], iter: 1520, lr: 0.001000, loss: 0.465286, loss_shrink_maps: 0.189047, loss_threshold_maps: 0.228131, loss_binary_maps: 0.037154, reader_cost: 0.70039 s, batch_cost: 1.07817 s, samples: 160, ips: 14.83992\n",
      "[2022/02/27 10:49:28] root INFO: epoch: [1/1], iter: 1530, lr: 0.001000, loss: 0.460678, loss_shrink_maps: 0.182072, loss_threshold_maps: 0.231689, loss_binary_maps: 0.035962, reader_cost: 0.56839 s, batch_cost: 1.02314 s, samples: 160, ips: 15.63819\n",
      "[2022/02/27 10:49:37] root INFO: epoch: [1/1], iter: 1540, lr: 0.001000, loss: 0.453616, loss_shrink_maps: 0.179235, loss_threshold_maps: 0.231167, loss_binary_maps: 0.035442, reader_cost: 0.41950 s, batch_cost: 0.89040 s, samples: 160, ips: 17.96952\n",
      "[2022/02/27 10:49:46] root INFO: epoch: [1/1], iter: 1550, lr: 0.001000, loss: 0.442255, loss_shrink_maps: 0.181875, loss_threshold_maps: 0.224293, loss_binary_maps: 0.035583, reader_cost: 0.30589 s, batch_cost: 0.84871 s, samples: 160, ips: 18.85203\n",
      "[2022/02/27 10:49:55] root INFO: epoch: [1/1], iter: 1560, lr: 0.001000, loss: 0.443370, loss_shrink_maps: 0.195914, loss_threshold_maps: 0.213773, loss_binary_maps: 0.039008, reader_cost: 0.23233 s, batch_cost: 0.79013 s, samples: 160, ips: 20.24982\n",
      "[2022/02/27 10:50:04] root INFO: epoch: [1/1], iter: 1570, lr: 0.001000, loss: 0.463473, loss_shrink_maps: 0.198870, loss_threshold_maps: 0.222955, loss_binary_maps: 0.039152, reader_cost: 0.31730 s, batch_cost: 0.87140 s, samples: 160, ips: 18.36123\n",
      "[2022/02/27 10:50:11] root INFO: epoch: [1/1], iter: 1580, lr: 0.001000, loss: 0.437460, loss_shrink_maps: 0.185165, loss_threshold_maps: 0.220376, loss_binary_maps: 0.036286, reader_cost: 0.00435 s, batch_cost: 0.69536 s, samples: 160, ips: 23.00969\n",
      "[2022/02/27 10:50:18] root INFO: epoch: [1/1], iter: 1590, lr: 0.001000, loss: 0.431011, loss_shrink_maps: 0.184968, loss_threshold_maps: 0.204195, loss_binary_maps: 0.035985, reader_cost: 0.04177 s, batch_cost: 0.63957 s, samples: 160, ips: 25.01669\n",
      "[2022/02/27 10:50:25] root INFO: epoch: [1/1], iter: 1600, lr: 0.001000, loss: 0.429110, loss_shrink_maps: 0.182710, loss_threshold_maps: 0.204643, loss_binary_maps: 0.036887, reader_cost: 0.00378 s, batch_cost: 0.69610 s, samples: 160, ips: 22.98513\n",
      "[2022/02/27 10:50:33] root INFO: epoch: [1/1], iter: 1610, lr: 0.001000, loss: 0.425875, loss_shrink_maps: 0.180916, loss_threshold_maps: 0.205760, loss_binary_maps: 0.036398, reader_cost: 0.08307 s, batch_cost: 0.73811 s, samples: 160, ips: 21.67694\n",
      "[2022/02/27 10:50:40] root INFO: epoch: [1/1], iter: 1620, lr: 0.001000, loss: 0.423826, loss_shrink_maps: 0.180501, loss_threshold_maps: 0.208525, loss_binary_maps: 0.035786, reader_cost: 0.00412 s, batch_cost: 0.69705 s, samples: 160, ips: 22.95398\n",
      "[2022/02/27 10:50:46] root INFO: epoch: [1/1], iter: 1630, lr: 0.001000, loss: 0.422973, loss_shrink_maps: 0.180201, loss_threshold_maps: 0.206926, loss_binary_maps: 0.035059, reader_cost: 0.00298 s, batch_cost: 0.63444 s, samples: 160, ips: 25.21896\n",
      "[2022/02/27 10:50:53] root INFO: epoch: [1/1], iter: 1640, lr: 0.001000, loss: 0.422973, loss_shrink_maps: 0.180000, loss_threshold_maps: 0.201994, loss_binary_maps: 0.035382, reader_cost: 0.01346 s, batch_cost: 0.63092 s, samples: 160, ips: 25.35965\n",
      "[2022/02/27 10:51:04] root INFO: epoch: [1/1], iter: 1650, lr: 0.001000, loss: 0.419340, loss_shrink_maps: 0.180000, loss_threshold_maps: 0.201057, loss_binary_maps: 0.035382, reader_cost: 0.59506 s, batch_cost: 1.06529 s, samples: 160, ips: 15.01938\n",
      "[2022/02/27 10:51:15] root INFO: epoch: [1/1], iter: 1660, lr: 0.001000, loss: 0.428106, loss_shrink_maps: 0.175199, loss_threshold_maps: 0.208480, loss_binary_maps: 0.034950, reader_cost: 0.57099 s, batch_cost: 1.03138 s, samples: 160, ips: 15.51316\n",
      "[2022/02/27 10:51:22] root INFO: epoch: [1/1], iter: 1670, lr: 0.001000, loss: 0.422014, loss_shrink_maps: 0.178511, loss_threshold_maps: 0.203431, loss_binary_maps: 0.034983, reader_cost: 0.05724 s, batch_cost: 0.65980 s, samples: 160, ips: 24.24975\n",
      "[2022/02/27 10:51:30] root INFO: epoch: [1/1], iter: 1680, lr: 0.001000, loss: 0.432000, loss_shrink_maps: 0.183457, loss_threshold_maps: 0.211243, loss_binary_maps: 0.036517, reader_cost: 0.03963 s, batch_cost: 0.76635 s, samples: 160, ips: 20.87826\n",
      "[2022/02/27 10:51:36] root INFO: epoch: [1/1], iter: 1690, lr: 0.001000, loss: 0.434652, loss_shrink_maps: 0.186954, loss_threshold_maps: 0.213232, loss_binary_maps: 0.036657, reader_cost: 0.00444 s, batch_cost: 0.58102 s, samples: 160, ips: 27.53792\n",
      "[2022/02/27 10:51:47] root INFO: epoch: [1/1], iter: 1700, lr: 0.001000, loss: 0.435249, loss_shrink_maps: 0.184837, loss_threshold_maps: 0.213089, loss_binary_maps: 0.036059, reader_cost: 0.67076 s, batch_cost: 1.03542 s, samples: 160, ips: 15.45267\n",
      "[2022/02/27 10:51:57] root INFO: epoch: [1/1], iter: 1710, lr: 0.001000, loss: 0.432504, loss_shrink_maps: 0.176397, loss_threshold_maps: 0.215855, loss_binary_maps: 0.034871, reader_cost: 0.58306 s, batch_cost: 1.06020 s, samples: 160, ips: 15.09155\n",
      "[2022/02/27 10:52:05] root INFO: epoch: [1/1], iter: 1720, lr: 0.001000, loss: 0.431081, loss_shrink_maps: 0.179675, loss_threshold_maps: 0.212792, loss_binary_maps: 0.035464, reader_cost: 0.13000 s, batch_cost: 0.72351 s, samples: 160, ips: 22.11435\n",
      "[2022/02/27 10:52:17] root INFO: epoch: [1/1], iter: 1730, lr: 0.001000, loss: 0.444645, loss_shrink_maps: 0.193898, loss_threshold_maps: 0.209687, loss_binary_maps: 0.038198, reader_cost: 0.62461 s, batch_cost: 1.07887 s, samples: 160, ips: 14.83037\n",
      "[2022/02/27 10:52:26] root INFO: epoch: [1/1], iter: 1740, lr: 0.001000, loss: 0.428608, loss_shrink_maps: 0.193730, loss_threshold_maps: 0.202941, loss_binary_maps: 0.038319, reader_cost: 0.48662 s, batch_cost: 0.93020 s, samples: 160, ips: 17.20055\n",
      "[2022/02/27 10:52:35] root INFO: epoch: [1/1], iter: 1750, lr: 0.001000, loss: 0.433390, loss_shrink_maps: 0.194499, loss_threshold_maps: 0.206068, loss_binary_maps: 0.038648, reader_cost: 0.25421 s, batch_cost: 0.89023 s, samples: 160, ips: 17.97282\n",
      "[2022/02/27 10:52:41] root INFO: epoch: [1/1], iter: 1760, lr: 0.001000, loss: 0.437326, loss_shrink_maps: 0.189536, loss_threshold_maps: 0.209506, loss_binary_maps: 0.037782, reader_cost: 0.00506 s, batch_cost: 0.49000 s, samples: 160, ips: 32.65282\n",
      "[2022/02/27 10:52:53] root INFO: epoch: [1/1], iter: 1770, lr: 0.001000, loss: 0.423332, loss_shrink_maps: 0.184785, loss_threshold_maps: 0.209705, loss_binary_maps: 0.036902, reader_cost: 0.56070 s, batch_cost: 1.18462 s, samples: 160, ips: 13.50647\n",
      "[2022/02/27 10:53:00] root INFO: epoch: [1/1], iter: 1780, lr: 0.001000, loss: 0.421693, loss_shrink_maps: 0.183124, loss_threshold_maps: 0.202766, loss_binary_maps: 0.036351, reader_cost: 0.24884 s, batch_cost: 0.70399 s, samples: 160, ips: 22.72760\n",
      "[2022/02/27 10:53:09] root INFO: epoch: [1/1], iter: 1790, lr: 0.001000, loss: 0.432778, loss_shrink_maps: 0.191848, loss_threshold_maps: 0.209964, loss_binary_maps: 0.038062, reader_cost: 0.39562 s, batch_cost: 0.81752 s, samples: 160, ips: 19.57147\n",
      "[2022/02/27 10:53:20] root INFO: epoch: [1/1], iter: 1800, lr: 0.001000, loss: 0.439327, loss_shrink_maps: 0.196096, loss_threshold_maps: 0.204849, loss_binary_maps: 0.039269, reader_cost: 0.58857 s, batch_cost: 1.12314 s, samples: 160, ips: 14.24582\n",
      "[2022/02/27 10:53:30] root INFO: epoch: [1/1], iter: 1810, lr: 0.001000, loss: 0.440276, loss_shrink_maps: 0.182626, loss_threshold_maps: 0.204292, loss_binary_maps: 0.035895, reader_cost: 0.45821 s, batch_cost: 0.91100 s, samples: 160, ips: 17.56310\n",
      "[2022/02/27 10:53:39] root INFO: epoch: [1/1], iter: 1820, lr: 0.001000, loss: 0.444535, loss_shrink_maps: 0.178645, loss_threshold_maps: 0.209218, loss_binary_maps: 0.035567, reader_cost: 0.54750 s, batch_cost: 0.90573 s, samples: 160, ips: 17.66525\n",
      "[2022/02/27 10:53:48] root INFO: epoch: [1/1], iter: 1830, lr: 0.001000, loss: 0.447103, loss_shrink_maps: 0.192878, loss_threshold_maps: 0.209811, loss_binary_maps: 0.038057, reader_cost: 0.33679 s, batch_cost: 0.84358 s, samples: 160, ips: 18.96680\n",
      "[2022/02/27 10:53:55] root INFO: epoch: [1/1], iter: 1840, lr: 0.001000, loss: 0.452398, loss_shrink_maps: 0.198399, loss_threshold_maps: 0.221329, loss_binary_maps: 0.038978, reader_cost: 0.32842 s, batch_cost: 0.71473 s, samples: 160, ips: 22.38597\n",
      "[2022/02/27 10:54:07] root INFO: epoch: [1/1], iter: 1850, lr: 0.001000, loss: 0.448782, loss_shrink_maps: 0.185602, loss_threshold_maps: 0.221220, loss_binary_maps: 0.036801, reader_cost: 0.82190 s, batch_cost: 1.15807 s, samples: 160, ips: 13.81609\n",
      "[2022/02/27 10:54:17] root INFO: epoch: [1/1], iter: 1860, lr: 0.001000, loss: 0.433955, loss_shrink_maps: 0.188428, loss_threshold_maps: 0.207441, loss_binary_maps: 0.037776, reader_cost: 0.56967 s, batch_cost: 0.98326 s, samples: 160, ips: 16.27232\n",
      "[2022/02/27 10:54:26] root INFO: epoch: [1/1], iter: 1870, lr: 0.001000, loss: 0.434933, loss_shrink_maps: 0.188850, loss_threshold_maps: 0.211470, loss_binary_maps: 0.037753, reader_cost: 0.40117 s, batch_cost: 0.86347 s, samples: 160, ips: 18.52987\n",
      "[2022/02/27 10:54:38] root INFO: epoch: [1/1], iter: 1880, lr: 0.001000, loss: 0.433478, loss_shrink_maps: 0.185284, loss_threshold_maps: 0.212750, loss_binary_maps: 0.036589, reader_cost: 0.78147 s, batch_cost: 1.14338 s, samples: 160, ips: 13.99355\n",
      "[2022/02/27 10:54:49] root INFO: epoch: [1/1], iter: 1890, lr: 0.001000, loss: 0.406881, loss_shrink_maps: 0.176715, loss_threshold_maps: 0.199756, loss_binary_maps: 0.034895, reader_cost: 0.52111 s, batch_cost: 1.08475 s, samples: 160, ips: 14.74992\n",
      "[2022/02/27 10:54:56] root INFO: epoch: [1/1], iter: 1900, lr: 0.001000, loss: 0.409898, loss_shrink_maps: 0.176715, loss_threshold_maps: 0.203234, loss_binary_maps: 0.034895, reader_cost: 0.11777 s, batch_cost: 0.61731 s, samples: 160, ips: 25.91876\n",
      "[2022/02/27 10:55:02] root INFO: epoch: [1/1], iter: 1910, lr: 0.001000, loss: 0.420307, loss_shrink_maps: 0.178803, loss_threshold_maps: 0.205669, loss_binary_maps: 0.035420, reader_cost: 0.03413 s, batch_cost: 0.54463 s, samples: 160, ips: 29.37782\n",
      "[2022/02/27 10:55:12] root INFO: epoch: [1/1], iter: 1920, lr: 0.001000, loss: 0.407169, loss_shrink_maps: 0.177571, loss_threshold_maps: 0.195665, loss_binary_maps: 0.035081, reader_cost: 0.50925 s, batch_cost: 0.96467 s, samples: 160, ips: 16.58605\n",
      "[2022/02/27 10:55:26] root INFO: epoch: [1/1], iter: 1930, lr: 0.001000, loss: 0.403046, loss_shrink_maps: 0.177021, loss_threshold_maps: 0.193156, loss_binary_maps: 0.034643, reader_cost: 1.04915 s, batch_cost: 1.40339 s, samples: 160, ips: 11.40095\n",
      "[2022/02/27 10:55:35] root INFO: epoch: [1/1], iter: 1940, lr: 0.001000, loss: 0.412898, loss_shrink_maps: 0.177021, loss_threshold_maps: 0.201700, loss_binary_maps: 0.034887, reader_cost: 0.48166 s, batch_cost: 0.88439 s, samples: 160, ips: 18.09158\n",
      "[2022/02/27 10:55:43] root INFO: epoch: [1/1], iter: 1950, lr: 0.001000, loss: 0.402120, loss_shrink_maps: 0.176751, loss_threshold_maps: 0.200582, loss_binary_maps: 0.034771, reader_cost: 0.34475 s, batch_cost: 0.74291 s, samples: 160, ips: 21.53689\n",
      "[2022/02/27 10:55:53] root INFO: epoch: [1/1], iter: 1960, lr: 0.001000, loss: 0.402120, loss_shrink_maps: 0.173348, loss_threshold_maps: 0.191798, loss_binary_maps: 0.034319, reader_cost: 0.42265 s, batch_cost: 0.98006 s, samples: 160, ips: 16.32550\n",
      "[2022/02/27 10:56:00] root INFO: epoch: [1/1], iter: 1970, lr: 0.001000, loss: 0.404043, loss_shrink_maps: 0.174511, loss_threshold_maps: 0.195901, loss_binary_maps: 0.034786, reader_cost: 0.07508 s, batch_cost: 0.66881 s, samples: 160, ips: 23.92315\n",
      "[2022/02/27 10:56:07] root INFO: epoch: [1/1], iter: 1980, lr: 0.001000, loss: 0.413984, loss_shrink_maps: 0.178643, loss_threshold_maps: 0.202836, loss_binary_maps: 0.035600, reader_cost: 0.01250 s, batch_cost: 0.59562 s, samples: 160, ips: 26.86293\n",
      "[2022/02/27 10:56:14] root INFO: epoch: [1/1], iter: 1990, lr: 0.001000, loss: 0.413155, loss_shrink_maps: 0.185383, loss_threshold_maps: 0.199697, loss_binary_maps: 0.036557, reader_cost: 0.04072 s, batch_cost: 0.64479 s, samples: 160, ips: 24.81435\n",
      "[2022/02/27 10:56:21] root INFO: epoch: [1/1], iter: 2000, lr: 0.001000, loss: 0.403810, loss_shrink_maps: 0.174415, loss_threshold_maps: 0.197376, loss_binary_maps: 0.034450, reader_cost: 0.18864 s, batch_cost: 0.67749 s, samples: 160, ips: 23.61651\n",
      "eval model:: 100%|████████████████████████| 19154/19154 [14:08<00:00, 27.16it/s]\n",
      "[2022/02/27 11:10:30] root INFO: cur metric, precision: 0.8215284249767009, recall: 0.9204343740210922, hmean: 0.8681735362190377, fps: 28.241668063519167\n",
      "[2022/02/27 11:10:30] root INFO: save best model is to ./output/db_mv3/best_accuracy\n",
      "[2022/02/27 11:10:30] root INFO: best metric, hmean: 0.8681735362190377, precision: 0.8215284249767009, recall: 0.9204343740210922, fps: 28.241668063519167, best_epoch: 1\n",
      "[2022/02/27 11:10:35] root INFO: epoch: [1/1], iter: 2010, lr: 0.001000, loss: 0.410566, loss_shrink_maps: 0.172210, loss_threshold_maps: 0.206092, loss_binary_maps: 0.034157, reader_cost: 0.00821 s, batch_cost: 0.46121 s, samples: 160, ips: 34.69122\n",
      "[2022/02/27 11:10:42] root INFO: epoch: [1/1], iter: 2020, lr: 0.001000, loss: 0.414112, loss_shrink_maps: 0.174744, loss_threshold_maps: 0.198196, loss_binary_maps: 0.034830, reader_cost: 0.00032 s, batch_cost: 0.67483 s, samples: 160, ips: 23.70974\n",
      "[2022/02/27 11:10:49] root INFO: epoch: [1/1], iter: 2030, lr: 0.001000, loss: 0.405105, loss_shrink_maps: 0.175234, loss_threshold_maps: 0.196297, loss_binary_maps: 0.034830, reader_cost: 0.00531 s, batch_cost: 0.62173 s, samples: 160, ips: 25.73459\n",
      "[2022/02/27 11:10:56] root INFO: epoch: [1/1], iter: 2040, lr: 0.001000, loss: 0.427765, loss_shrink_maps: 0.184487, loss_threshold_maps: 0.205708, loss_binary_maps: 0.036764, reader_cost: 0.02271 s, batch_cost: 0.68299 s, samples: 160, ips: 23.42628\n",
      "[2022/02/27 11:11:03] root INFO: epoch: [1/1], iter: 2050, lr: 0.001000, loss: 0.418035, loss_shrink_maps: 0.177806, loss_threshold_maps: 0.199810, loss_binary_maps: 0.035170, reader_cost: 0.00881 s, batch_cost: 0.61470 s, samples: 160, ips: 26.02888\n",
      "[2022/02/27 11:11:09] root INFO: epoch: [1/1], iter: 2060, lr: 0.001000, loss: 0.380588, loss_shrink_maps: 0.169145, loss_threshold_maps: 0.185645, loss_binary_maps: 0.033256, reader_cost: 0.01052 s, batch_cost: 0.59533 s, samples: 160, ips: 26.87599\n",
      "[2022/02/27 11:11:16] root INFO: epoch: [1/1], iter: 2070, lr: 0.001000, loss: 0.388383, loss_shrink_maps: 0.169145, loss_threshold_maps: 0.188215, loss_binary_maps: 0.033152, reader_cost: 0.00616 s, batch_cost: 0.64218 s, samples: 160, ips: 24.91508\n",
      "[2022/02/27 11:11:23] root INFO: epoch: [1/1], iter: 2080, lr: 0.001000, loss: 0.402782, loss_shrink_maps: 0.179117, loss_threshold_maps: 0.189146, loss_binary_maps: 0.035264, reader_cost: 0.00799 s, batch_cost: 0.63370 s, samples: 160, ips: 25.24835\n",
      "[2022/02/27 11:11:30] root INFO: epoch: [1/1], iter: 2090, lr: 0.001000, loss: 0.404715, loss_shrink_maps: 0.179172, loss_threshold_maps: 0.200378, loss_binary_maps: 0.035160, reader_cost: 0.02186 s, batch_cost: 0.64100 s, samples: 160, ips: 24.96111\n",
      "[2022/02/27 11:11:37] root INFO: epoch: [1/1], iter: 2100, lr: 0.001000, loss: 0.422615, loss_shrink_maps: 0.180607, loss_threshold_maps: 0.201096, loss_binary_maps: 0.035987, reader_cost: 0.00823 s, batch_cost: 0.62435 s, samples: 160, ips: 25.62658\n",
      "[2022/02/27 11:11:43] root INFO: epoch: [1/1], iter: 2110, lr: 0.001000, loss: 0.430315, loss_shrink_maps: 0.181950, loss_threshold_maps: 0.205986, loss_binary_maps: 0.036184, reader_cost: 0.00426 s, batch_cost: 0.61544 s, samples: 160, ips: 25.99774\n",
      "[2022/02/27 11:11:50] root INFO: epoch: [1/1], iter: 2120, lr: 0.001000, loss: 0.423782, loss_shrink_maps: 0.181950, loss_threshold_maps: 0.205519, loss_binary_maps: 0.035755, reader_cost: 0.20091 s, batch_cost: 0.67195 s, samples: 160, ips: 23.81112\n",
      "[2022/02/27 11:11:59] root INFO: epoch: [1/1], iter: 2130, lr: 0.001000, loss: 0.405972, loss_shrink_maps: 0.176449, loss_threshold_maps: 0.197430, loss_binary_maps: 0.034971, reader_cost: 0.40051 s, batch_cost: 0.83430 s, samples: 160, ips: 19.17787\n",
      "[2022/02/27 11:12:09] root INFO: epoch: [1/1], iter: 2140, lr: 0.001000, loss: 0.408930, loss_shrink_maps: 0.175448, loss_threshold_maps: 0.198580, loss_binary_maps: 0.034784, reader_cost: 0.58038 s, batch_cost: 1.04654 s, samples: 160, ips: 15.28848\n",
      "[2022/02/27 11:12:20] root INFO: epoch: [1/1], iter: 2150, lr: 0.001000, loss: 0.410204, loss_shrink_maps: 0.171873, loss_threshold_maps: 0.200468, loss_binary_maps: 0.033919, reader_cost: 0.60094 s, batch_cost: 1.08900 s, samples: 160, ips: 14.69237\n",
      "[2022/02/27 11:12:28] root INFO: epoch: [1/1], iter: 2160, lr: 0.001000, loss: 0.399660, loss_shrink_maps: 0.168126, loss_threshold_maps: 0.194399, loss_binary_maps: 0.032976, reader_cost: 0.25291 s, batch_cost: 0.79648 s, samples: 160, ips: 20.08831\n",
      "[2022/02/27 11:12:35] root INFO: epoch: [1/1], iter: 2170, lr: 0.001000, loss: 0.409370, loss_shrink_maps: 0.176499, loss_threshold_maps: 0.198780, loss_binary_maps: 0.035256, reader_cost: 0.06701 s, batch_cost: 0.69442 s, samples: 160, ips: 23.04097\n",
      "[2022/02/27 11:12:42] root INFO: epoch: [1/1], iter: 2180, lr: 0.001000, loss: 0.416281, loss_shrink_maps: 0.181076, loss_threshold_maps: 0.200206, loss_binary_maps: 0.035614, reader_cost: 0.05203 s, batch_cost: 0.65214 s, samples: 160, ips: 24.53453\n",
      "[2022/02/27 11:12:49] root INFO: epoch: [1/1], iter: 2190, lr: 0.001000, loss: 0.427241, loss_shrink_maps: 0.189575, loss_threshold_maps: 0.199553, loss_binary_maps: 0.037671, reader_cost: 0.04595 s, batch_cost: 0.63053 s, samples: 160, ips: 25.37548\n",
      "[2022/02/27 11:12:55] root INFO: epoch: [1/1], iter: 2200, lr: 0.001000, loss: 0.433423, loss_shrink_maps: 0.190420, loss_threshold_maps: 0.195037, loss_binary_maps: 0.037766, reader_cost: 0.00150 s, batch_cost: 0.60931 s, samples: 160, ips: 26.25934\n",
      "[2022/02/27 11:13:02] root INFO: epoch: [1/1], iter: 2210, lr: 0.001000, loss: 0.410190, loss_shrink_maps: 0.176188, loss_threshold_maps: 0.196983, loss_binary_maps: 0.035311, reader_cost: 0.06652 s, batch_cost: 0.66157 s, samples: 160, ips: 24.18481\n",
      "[2022/02/27 11:13:08] root INFO: epoch: [1/1], iter: 2220, lr: 0.001000, loss: 0.410190, loss_shrink_maps: 0.166433, loss_threshold_maps: 0.206850, loss_binary_maps: 0.033055, reader_cost: 0.03076 s, batch_cost: 0.66932 s, samples: 160, ips: 23.90501\n",
      "[2022/02/27 11:13:15] root INFO: epoch: [1/1], iter: 2230, lr: 0.001000, loss: 0.404675, loss_shrink_maps: 0.165648, loss_threshold_maps: 0.202515, loss_binary_maps: 0.033014, reader_cost: 0.03376 s, batch_cost: 0.65141 s, samples: 160, ips: 24.56195\n",
      "[2022/02/27 11:13:21] root INFO: epoch: [1/1], iter: 2240, lr: 0.001000, loss: 0.405661, loss_shrink_maps: 0.171828, loss_threshold_maps: 0.203129, loss_binary_maps: 0.033817, reader_cost: 0.00031 s, batch_cost: 0.62527 s, samples: 160, ips: 25.58909\n",
      "[2022/02/27 11:13:28] root INFO: epoch: [1/1], iter: 2250, lr: 0.001000, loss: 0.422634, loss_shrink_maps: 0.185984, loss_threshold_maps: 0.201128, loss_binary_maps: 0.036598, reader_cost: 0.03503 s, batch_cost: 0.65624 s, samples: 160, ips: 24.38127\n",
      "[2022/02/27 11:13:35] root INFO: epoch: [1/1], iter: 2260, lr: 0.001000, loss: 0.407005, loss_shrink_maps: 0.175236, loss_threshold_maps: 0.194113, loss_binary_maps: 0.034680, reader_cost: 0.03542 s, batch_cost: 0.59508 s, samples: 160, ips: 26.88735\n",
      "[2022/02/27 11:13:41] root INFO: epoch: [1/1], iter: 2270, lr: 0.001000, loss: 0.420177, loss_shrink_maps: 0.175056, loss_threshold_maps: 0.208591, loss_binary_maps: 0.034876, reader_cost: 0.05191 s, batch_cost: 0.61885 s, samples: 160, ips: 25.85455\n",
      "[2022/02/27 11:13:48] root INFO: epoch: [1/1], iter: 2280, lr: 0.001000, loss: 0.408971, loss_shrink_maps: 0.173588, loss_threshold_maps: 0.199480, loss_binary_maps: 0.034696, reader_cost: 0.10893 s, batch_cost: 0.66360 s, samples: 160, ips: 24.11074\n",
      "[2022/02/27 11:13:55] root INFO: epoch: [1/1], iter: 2290, lr: 0.001000, loss: 0.387572, loss_shrink_maps: 0.167169, loss_threshold_maps: 0.190716, loss_binary_maps: 0.033375, reader_cost: 0.06036 s, batch_cost: 0.68341 s, samples: 160, ips: 23.41200\n",
      "[2022/02/27 11:14:02] root INFO: epoch: [1/1], iter: 2300, lr: 0.001000, loss: 0.399715, loss_shrink_maps: 0.175039, loss_threshold_maps: 0.189293, loss_binary_maps: 0.034730, reader_cost: 0.02879 s, batch_cost: 0.63252 s, samples: 160, ips: 25.29553\n",
      "[2022/02/27 11:14:09] root INFO: epoch: [1/1], iter: 2310, lr: 0.001000, loss: 0.393325, loss_shrink_maps: 0.171904, loss_threshold_maps: 0.184680, loss_binary_maps: 0.034209, reader_cost: 0.03447 s, batch_cost: 0.62011 s, samples: 160, ips: 25.80176\n",
      "[2022/02/27 11:14:15] root INFO: epoch: [1/1], iter: 2320, lr: 0.001000, loss: 0.382482, loss_shrink_maps: 0.169994, loss_threshold_maps: 0.181712, loss_binary_maps: 0.033901, reader_cost: 0.02664 s, batch_cost: 0.62176 s, samples: 160, ips: 25.73350\n",
      "[2022/02/27 11:14:22] root INFO: epoch: [1/1], iter: 2330, lr: 0.001000, loss: 0.384789, loss_shrink_maps: 0.169336, loss_threshold_maps: 0.180854, loss_binary_maps: 0.033518, reader_cost: 0.02681 s, batch_cost: 0.65034 s, samples: 160, ips: 24.60249\n",
      "[2022/02/27 11:14:28] root INFO: epoch: [1/1], iter: 2340, lr: 0.001000, loss: 0.384307, loss_shrink_maps: 0.168933, loss_threshold_maps: 0.181704, loss_binary_maps: 0.033903, reader_cost: 0.00237 s, batch_cost: 0.61677 s, samples: 160, ips: 25.94146\n",
      "[2022/02/27 11:14:34] root INFO: epoch: [1/1], iter: 2350, lr: 0.001000, loss: 0.393992, loss_shrink_maps: 0.169204, loss_threshold_maps: 0.185323, loss_binary_maps: 0.033297, reader_cost: 0.05153 s, batch_cost: 0.60271 s, samples: 160, ips: 26.54667\n",
      "[2022/02/27 11:14:42] root INFO: epoch: [1/1], iter: 2360, lr: 0.001000, loss: 0.394197, loss_shrink_maps: 0.169204, loss_threshold_maps: 0.184784, loss_binary_maps: 0.033297, reader_cost: 0.00538 s, batch_cost: 0.63623 s, samples: 160, ips: 25.14832\n",
      "[2022/02/27 11:14:48] root INFO: epoch: [1/1], iter: 2370, lr: 0.001000, loss: 0.403436, loss_shrink_maps: 0.176782, loss_threshold_maps: 0.191872, loss_binary_maps: 0.035256, reader_cost: 0.00916 s, batch_cost: 0.63737 s, samples: 160, ips: 25.10316\n",
      "[2022/02/27 11:14:55] root INFO: epoch: [1/1], iter: 2380, lr: 0.001000, loss: 0.397675, loss_shrink_maps: 0.170817, loss_threshold_maps: 0.194547, loss_binary_maps: 0.033967, reader_cost: 0.00398 s, batch_cost: 0.70615 s, samples: 160, ips: 22.65807\n",
      "[2022/02/27 11:15:02] root INFO: epoch: [1/1], iter: 2390, lr: 0.001000, loss: 0.400627, loss_shrink_maps: 0.169137, loss_threshold_maps: 0.197724, loss_binary_maps: 0.033351, reader_cost: 0.03301 s, batch_cost: 0.56227 s, samples: 160, ips: 28.45608\n",
      "[2022/02/27 11:15:09] root INFO: epoch: [1/1], iter: 2400, lr: 0.001000, loss: 0.407594, loss_shrink_maps: 0.171439, loss_threshold_maps: 0.196588, loss_binary_maps: 0.033946, reader_cost: 0.00857 s, batch_cost: 0.62041 s, samples: 160, ips: 25.78930\n",
      "[2022/02/27 11:15:16] root INFO: epoch: [1/1], iter: 2410, lr: 0.001000, loss: 0.406440, loss_shrink_maps: 0.172768, loss_threshold_maps: 0.191392, loss_binary_maps: 0.034849, reader_cost: 0.00565 s, batch_cost: 0.60439 s, samples: 160, ips: 26.47314\n",
      "[2022/02/27 11:15:22] root INFO: epoch: [1/1], iter: 2420, lr: 0.001000, loss: 0.419311, loss_shrink_maps: 0.179596, loss_threshold_maps: 0.194188, loss_binary_maps: 0.035391, reader_cost: 0.00862 s, batch_cost: 0.64706 s, samples: 160, ips: 24.72731\n",
      "[2022/02/27 11:15:29] root INFO: epoch: [1/1], iter: 2430, lr: 0.001000, loss: 0.398139, loss_shrink_maps: 0.170828, loss_threshold_maps: 0.193030, loss_binary_maps: 0.033800, reader_cost: 0.00627 s, batch_cost: 0.60816 s, samples: 160, ips: 26.30907\n",
      "[2022/02/27 11:15:36] root INFO: epoch: [1/1], iter: 2440, lr: 0.001000, loss: 0.392548, loss_shrink_maps: 0.169571, loss_threshold_maps: 0.192251, loss_binary_maps: 0.033873, reader_cost: 0.01477 s, batch_cost: 0.64220 s, samples: 160, ips: 24.91420\n",
      "[2022/02/27 11:15:42] root INFO: epoch: [1/1], iter: 2450, lr: 0.001000, loss: 0.408544, loss_shrink_maps: 0.177537, loss_threshold_maps: 0.192703, loss_binary_maps: 0.035100, reader_cost: 0.00759 s, batch_cost: 0.60168 s, samples: 160, ips: 26.59200\n",
      "[2022/02/27 11:15:49] root INFO: epoch: [1/1], iter: 2460, lr: 0.001000, loss: 0.408544, loss_shrink_maps: 0.177429, loss_threshold_maps: 0.194241, loss_binary_maps: 0.034952, reader_cost: 0.00779 s, batch_cost: 0.60627 s, samples: 160, ips: 26.39068\n",
      "[2022/02/27 11:15:56] root INFO: epoch: [1/1], iter: 2470, lr: 0.001000, loss: 0.414999, loss_shrink_maps: 0.177564, loss_threshold_maps: 0.195802, loss_binary_maps: 0.035216, reader_cost: 0.02293 s, batch_cost: 0.67746 s, samples: 160, ips: 23.61765\n",
      "[2022/02/27 11:16:02] root INFO: epoch: [1/1], iter: 2480, lr: 0.001000, loss: 0.416588, loss_shrink_maps: 0.175342, loss_threshold_maps: 0.201469, loss_binary_maps: 0.034699, reader_cost: 0.00811 s, batch_cost: 0.62726 s, samples: 160, ips: 25.50761\n",
      "[2022/02/27 11:16:09] root INFO: epoch: [1/1], iter: 2490, lr: 0.001000, loss: 0.408391, loss_shrink_maps: 0.168062, loss_threshold_maps: 0.196791, loss_binary_maps: 0.033399, reader_cost: 0.16736 s, batch_cost: 0.67454 s, samples: 160, ips: 23.71996\n",
      "[2022/02/27 11:16:16] root INFO: epoch: [1/1], iter: 2500, lr: 0.001000, loss: 0.403274, loss_shrink_maps: 0.173364, loss_threshold_maps: 0.191430, loss_binary_maps: 0.034365, reader_cost: 0.03130 s, batch_cost: 0.60023 s, samples: 160, ips: 26.65645\n",
      "[2022/02/27 11:16:22] root INFO: epoch: [1/1], iter: 2510, lr: 0.001000, loss: 0.385385, loss_shrink_maps: 0.167513, loss_threshold_maps: 0.184621, loss_binary_maps: 0.033283, reader_cost: 0.02923 s, batch_cost: 0.60016 s, samples: 160, ips: 26.65954\n",
      "[2022/02/27 11:16:29] root INFO: epoch: [1/1], iter: 2520, lr: 0.001000, loss: 0.380617, loss_shrink_maps: 0.169514, loss_threshold_maps: 0.187591, loss_binary_maps: 0.033837, reader_cost: 0.06903 s, batch_cost: 0.65843 s, samples: 160, ips: 24.30039\n",
      "[2022/02/27 11:16:35] root INFO: epoch: [1/1], iter: 2530, lr: 0.001000, loss: 0.404363, loss_shrink_maps: 0.175541, loss_threshold_maps: 0.192737, loss_binary_maps: 0.034880, reader_cost: 0.00625 s, batch_cost: 0.63671 s, samples: 160, ips: 25.12908\n",
      "[2022/02/27 11:16:43] root INFO: epoch: [1/1], iter: 2540, lr: 0.001000, loss: 0.399569, loss_shrink_maps: 0.173291, loss_threshold_maps: 0.191839, loss_binary_maps: 0.034461, reader_cost: 0.09929 s, batch_cost: 0.64241 s, samples: 160, ips: 24.90631\n",
      "[2022/02/27 11:16:49] root INFO: epoch: [1/1], iter: 2550, lr: 0.001000, loss: 0.385359, loss_shrink_maps: 0.165750, loss_threshold_maps: 0.189447, loss_binary_maps: 0.032876, reader_cost: 0.00967 s, batch_cost: 0.66833 s, samples: 160, ips: 23.94016\n",
      "[2022/02/27 11:16:56] root INFO: epoch: [1/1], iter: 2560, lr: 0.001000, loss: 0.390243, loss_shrink_maps: 0.163875, loss_threshold_maps: 0.191543, loss_binary_maps: 0.032405, reader_cost: 0.02979 s, batch_cost: 0.63721 s, samples: 160, ips: 25.10952\n",
      "[2022/02/27 11:17:03] root INFO: epoch: [1/1], iter: 2570, lr: 0.001000, loss: 0.392126, loss_shrink_maps: 0.171045, loss_threshold_maps: 0.182670, loss_binary_maps: 0.033656, reader_cost: 0.00380 s, batch_cost: 0.65795 s, samples: 160, ips: 24.31808\n",
      "[2022/02/27 11:17:09] root INFO: epoch: [1/1], iter: 2580, lr: 0.001000, loss: 0.405101, loss_shrink_maps: 0.176606, loss_threshold_maps: 0.196856, loss_binary_maps: 0.035393, reader_cost: 0.03312 s, batch_cost: 0.60022 s, samples: 160, ips: 26.65690\n",
      "[2022/02/27 11:17:16] root INFO: epoch: [1/1], iter: 2590, lr: 0.001000, loss: 0.399768, loss_shrink_maps: 0.172293, loss_threshold_maps: 0.195976, loss_binary_maps: 0.034577, reader_cost: 0.05065 s, batch_cost: 0.63746 s, samples: 160, ips: 25.09949\n",
      "[2022/02/27 11:17:23] root INFO: epoch: [1/1], iter: 2600, lr: 0.001000, loss: 0.385409, loss_shrink_maps: 0.170983, loss_threshold_maps: 0.178698, loss_binary_maps: 0.034167, reader_cost: 0.03390 s, batch_cost: 0.60304 s, samples: 160, ips: 26.53209\n",
      "[2022/02/27 11:17:30] root INFO: epoch: [1/1], iter: 2610, lr: 0.001000, loss: 0.407455, loss_shrink_maps: 0.181416, loss_threshold_maps: 0.186461, loss_binary_maps: 0.035369, reader_cost: 0.02433 s, batch_cost: 0.67075 s, samples: 160, ips: 23.85405\n",
      "[2022/02/27 11:17:36] root INFO: epoch: [1/1], iter: 2620, lr: 0.001000, loss: 0.416736, loss_shrink_maps: 0.175623, loss_threshold_maps: 0.198003, loss_binary_maps: 0.035046, reader_cost: 0.02789 s, batch_cost: 0.60347 s, samples: 160, ips: 26.51316\n",
      "[2022/02/27 11:17:42] root INFO: epoch: [1/1], iter: 2630, lr: 0.001000, loss: 0.415518, loss_shrink_maps: 0.176995, loss_threshold_maps: 0.198520, loss_binary_maps: 0.035220, reader_cost: 0.02717 s, batch_cost: 0.61254 s, samples: 160, ips: 26.12090\n",
      "[2022/02/27 11:17:49] root INFO: epoch: [1/1], iter: 2640, lr: 0.001000, loss: 0.418116, loss_shrink_maps: 0.175820, loss_threshold_maps: 0.200012, loss_binary_maps: 0.035115, reader_cost: 0.08656 s, batch_cost: 0.66798 s, samples: 160, ips: 23.95286\n",
      "[2022/02/27 11:17:56] root INFO: epoch: [1/1], iter: 2650, lr: 0.001000, loss: 0.401902, loss_shrink_maps: 0.163821, loss_threshold_maps: 0.210872, loss_binary_maps: 0.032386, reader_cost: 0.00028 s, batch_cost: 0.62794 s, samples: 160, ips: 25.48011\n",
      "[2022/02/27 11:18:02] root INFO: epoch: [1/1], iter: 2660, lr: 0.001000, loss: 0.394995, loss_shrink_maps: 0.161712, loss_threshold_maps: 0.203919, loss_binary_maps: 0.032223, reader_cost: 0.00177 s, batch_cost: 0.64118 s, samples: 160, ips: 24.95409\n",
      "[2022/02/27 11:18:09] root INFO: epoch: [1/1], iter: 2670, lr: 0.001000, loss: 0.409017, loss_shrink_maps: 0.179691, loss_threshold_maps: 0.192166, loss_binary_maps: 0.035635, reader_cost: 0.00396 s, batch_cost: 0.66173 s, samples: 160, ips: 24.17914\n",
      "[2022/02/27 11:18:16] root INFO: epoch: [1/1], iter: 2680, lr: 0.001000, loss: 0.414616, loss_shrink_maps: 0.193003, loss_threshold_maps: 0.190329, loss_binary_maps: 0.038698, reader_cost: 0.07326 s, batch_cost: 0.61538 s, samples: 160, ips: 26.00029\n",
      "[2022/02/27 11:18:23] root INFO: epoch: [1/1], iter: 2690, lr: 0.001000, loss: 0.391697, loss_shrink_maps: 0.170189, loss_threshold_maps: 0.186300, loss_binary_maps: 0.033856, reader_cost: 0.03669 s, batch_cost: 0.62247 s, samples: 160, ips: 25.70411\n",
      "[2022/02/27 11:18:30] root INFO: epoch: [1/1], iter: 2700, lr: 0.001000, loss: 0.389371, loss_shrink_maps: 0.167764, loss_threshold_maps: 0.186622, loss_binary_maps: 0.033441, reader_cost: 0.03000 s, batch_cost: 0.65330 s, samples: 160, ips: 24.49113\n",
      "[2022/02/27 11:18:37] root INFO: epoch: [1/1], iter: 2710, lr: 0.001000, loss: 0.389768, loss_shrink_maps: 0.169047, loss_threshold_maps: 0.184971, loss_binary_maps: 0.034005, reader_cost: 0.02523 s, batch_cost: 0.67591 s, samples: 160, ips: 23.67177\n",
      "[2022/02/27 11:18:43] root INFO: epoch: [1/1], iter: 2720, lr: 0.001000, loss: 0.383087, loss_shrink_maps: 0.169025, loss_threshold_maps: 0.189200, loss_binary_maps: 0.034157, reader_cost: 0.03043 s, batch_cost: 0.64191 s, samples: 160, ips: 24.92550\n",
      "[2022/02/27 11:18:50] root INFO: epoch: [1/1], iter: 2730, lr: 0.001000, loss: 0.391653, loss_shrink_maps: 0.172658, loss_threshold_maps: 0.191840, loss_binary_maps: 0.034113, reader_cost: 0.06973 s, batch_cost: 0.62243 s, samples: 160, ips: 25.70569\n",
      "[2022/02/27 11:18:56] root INFO: epoch: [1/1], iter: 2740, lr: 0.001000, loss: 0.415130, loss_shrink_maps: 0.187294, loss_threshold_maps: 0.188216, loss_binary_maps: 0.037311, reader_cost: 0.03354 s, batch_cost: 0.59448 s, samples: 160, ips: 26.91428\n",
      "[2022/02/27 11:19:03] root INFO: epoch: [1/1], iter: 2750, lr: 0.001000, loss: 0.419401, loss_shrink_maps: 0.189453, loss_threshold_maps: 0.193845, loss_binary_maps: 0.038111, reader_cost: 0.00562 s, batch_cost: 0.62827 s, samples: 160, ips: 25.46684\n",
      "[2022/02/27 11:19:10] root INFO: epoch: [1/1], iter: 2760, lr: 0.001000, loss: 0.429660, loss_shrink_maps: 0.187435, loss_threshold_maps: 0.207316, loss_binary_maps: 0.037089, reader_cost: 0.05929 s, batch_cost: 0.69070 s, samples: 160, ips: 23.16497\n",
      "[2022/02/27 11:19:17] root INFO: epoch: [1/1], iter: 2770, lr: 0.001000, loss: 0.441140, loss_shrink_maps: 0.190907, loss_threshold_maps: 0.210418, loss_binary_maps: 0.038749, reader_cost: 0.04971 s, batch_cost: 0.57152 s, samples: 160, ips: 27.99538\n",
      "[2022/02/27 11:19:24] root INFO: epoch: [1/1], iter: 2780, lr: 0.001000, loss: 0.430986, loss_shrink_maps: 0.189477, loss_threshold_maps: 0.203650, loss_binary_maps: 0.037816, reader_cost: 0.04868 s, batch_cost: 0.60580 s, samples: 160, ips: 26.41123\n",
      "[2022/02/27 11:19:30] root INFO: epoch: [1/1], iter: 2790, lr: 0.001000, loss: 0.409908, loss_shrink_maps: 0.172498, loss_threshold_maps: 0.196847, loss_binary_maps: 0.034115, reader_cost: 0.06241 s, batch_cost: 0.67189 s, samples: 160, ips: 23.81347\n",
      "[2022/02/27 11:19:37] root INFO: epoch: [1/1], iter: 2800, lr: 0.001000, loss: 0.387257, loss_shrink_maps: 0.167443, loss_threshold_maps: 0.188543, loss_binary_maps: 0.033355, reader_cost: 0.04888 s, batch_cost: 0.66179 s, samples: 160, ips: 24.17696\n",
      "[2022/02/27 11:19:43] root INFO: epoch: [1/1], iter: 2810, lr: 0.001000, loss: 0.386170, loss_shrink_maps: 0.165813, loss_threshold_maps: 0.191217, loss_binary_maps: 0.033193, reader_cost: 0.02987 s, batch_cost: 0.59908 s, samples: 160, ips: 26.70778\n",
      "[2022/02/27 11:19:50] root INFO: epoch: [1/1], iter: 2820, lr: 0.001000, loss: 0.399388, loss_shrink_maps: 0.170231, loss_threshold_maps: 0.200609, loss_binary_maps: 0.033820, reader_cost: 0.05266 s, batch_cost: 0.63785 s, samples: 160, ips: 25.08444\n",
      "[2022/02/27 11:19:57] root INFO: epoch: [1/1], iter: 2830, lr: 0.001000, loss: 0.395246, loss_shrink_maps: 0.165661, loss_threshold_maps: 0.196294, loss_binary_maps: 0.032858, reader_cost: 0.07231 s, batch_cost: 0.68362 s, samples: 160, ips: 23.40469\n",
      "[2022/02/27 11:20:04] root INFO: epoch: [1/1], iter: 2840, lr: 0.001000, loss: 0.370170, loss_shrink_maps: 0.158997, loss_threshold_maps: 0.179954, loss_binary_maps: 0.031266, reader_cost: 0.04875 s, batch_cost: 0.63637 s, samples: 160, ips: 25.14280\n",
      "[2022/02/27 11:20:10] root INFO: epoch: [1/1], iter: 2850, lr: 0.001000, loss: 0.375145, loss_shrink_maps: 0.163274, loss_threshold_maps: 0.181659, loss_binary_maps: 0.032728, reader_cost: 0.03085 s, batch_cost: 0.61101 s, samples: 160, ips: 26.18632\n",
      "[2022/02/27 11:20:17] root INFO: epoch: [1/1], iter: 2860, lr: 0.001000, loss: 0.400025, loss_shrink_maps: 0.178493, loss_threshold_maps: 0.185347, loss_binary_maps: 0.035587, reader_cost: 0.04650 s, batch_cost: 0.64106 s, samples: 160, ips: 24.95855\n",
      "[2022/02/27 11:20:24] root INFO: epoch: [1/1], iter: 2870, lr: 0.001000, loss: 0.408924, loss_shrink_maps: 0.178822, loss_threshold_maps: 0.193449, loss_binary_maps: 0.035187, reader_cost: 0.03163 s, batch_cost: 0.60872 s, samples: 160, ips: 26.28475\n",
      "[2022/02/27 11:20:30] root INFO: epoch: [1/1], iter: 2880, lr: 0.001000, loss: 0.396066, loss_shrink_maps: 0.171357, loss_threshold_maps: 0.189351, loss_binary_maps: 0.034022, reader_cost: 0.02341 s, batch_cost: 0.65548 s, samples: 160, ips: 24.40958\n",
      "[2022/02/27 11:20:37] root INFO: epoch: [1/1], iter: 2890, lr: 0.001000, loss: 0.394738, loss_shrink_maps: 0.170270, loss_threshold_maps: 0.181297, loss_binary_maps: 0.033892, reader_cost: 0.06838 s, batch_cost: 0.61487 s, samples: 160, ips: 26.02171\n",
      "[2022/02/27 11:20:44] root INFO: epoch: [1/1], iter: 2900, lr: 0.001000, loss: 0.384398, loss_shrink_maps: 0.171190, loss_threshold_maps: 0.179382, loss_binary_maps: 0.034109, reader_cost: 0.03669 s, batch_cost: 0.61130 s, samples: 160, ips: 26.17377\n",
      "[2022/02/27 11:20:50] root INFO: epoch: [1/1], iter: 2910, lr: 0.001000, loss: 0.375835, loss_shrink_maps: 0.161018, loss_threshold_maps: 0.183544, loss_binary_maps: 0.031745, reader_cost: 0.03579 s, batch_cost: 0.63774 s, samples: 160, ips: 25.08840\n",
      "[2022/02/27 11:20:57] root INFO: epoch: [1/1], iter: 2920, lr: 0.001000, loss: 0.383560, loss_shrink_maps: 0.162045, loss_threshold_maps: 0.185626, loss_binary_maps: 0.032459, reader_cost: 0.03304 s, batch_cost: 0.65814 s, samples: 160, ips: 24.31085\n",
      "[2022/02/27 11:21:07] root INFO: epoch: [1/1], iter: 2930, lr: 0.001000, loss: 0.390338, loss_shrink_maps: 0.173236, loss_threshold_maps: 0.185629, loss_binary_maps: 0.034762, reader_cost: 0.48607 s, batch_cost: 0.91060 s, samples: 160, ips: 17.57087\n",
      "[2022/02/27 11:21:14] root INFO: epoch: [1/1], iter: 2940, lr: 0.001000, loss: 0.377398, loss_shrink_maps: 0.169291, loss_threshold_maps: 0.173565, loss_binary_maps: 0.033515, reader_cost: 0.23081 s, batch_cost: 0.76109 s, samples: 160, ips: 21.02254\n",
      "[2022/02/27 11:21:24] root INFO: epoch: [1/1], iter: 2950, lr: 0.001000, loss: 0.382195, loss_shrink_maps: 0.169356, loss_threshold_maps: 0.179084, loss_binary_maps: 0.033463, reader_cost: 0.52028 s, batch_cost: 0.96712 s, samples: 160, ips: 16.54403\n",
      "[2022/02/27 11:21:32] root INFO: epoch: [1/1], iter: 2960, lr: 0.001000, loss: 0.389190, loss_shrink_maps: 0.166888, loss_threshold_maps: 0.184047, loss_binary_maps: 0.033359, reader_cost: 0.06050 s, batch_cost: 0.67814 s, samples: 160, ips: 23.59406\n",
      "[2022/02/27 11:21:39] root INFO: epoch: [1/1], iter: 2970, lr: 0.001000, loss: 0.381012, loss_shrink_maps: 0.163671, loss_threshold_maps: 0.182109, loss_binary_maps: 0.032280, reader_cost: 0.03612 s, batch_cost: 0.60978 s, samples: 160, ips: 26.23913\n",
      "[2022/02/27 11:21:49] root INFO: epoch: [1/1], iter: 2980, lr: 0.001000, loss: 0.396144, loss_shrink_maps: 0.171650, loss_threshold_maps: 0.183842, loss_binary_maps: 0.033722, reader_cost: 0.61195 s, batch_cost: 0.97811 s, samples: 160, ips: 16.35810\n",
      "[2022/02/27 11:22:01] root INFO: epoch: [1/1], iter: 2990, lr: 0.001000, loss: 0.384778, loss_shrink_maps: 0.167091, loss_threshold_maps: 0.184364, loss_binary_maps: 0.033311, reader_cost: 0.76928 s, batch_cost: 1.17050 s, samples: 160, ips: 13.66941\n",
      "[2022/02/27 11:22:09] root INFO: epoch: [1/1], iter: 3000, lr: 0.001000, loss: 0.361514, loss_shrink_maps: 0.152227, loss_threshold_maps: 0.178213, loss_binary_maps: 0.030341, reader_cost: 0.28113 s, batch_cost: 0.76618 s, samples: 160, ips: 20.88295\n",
      "[2022/02/27 11:22:18] root INFO: epoch: [1/1], iter: 3010, lr: 0.001000, loss: 0.368204, loss_shrink_maps: 0.159617, loss_threshold_maps: 0.174480, loss_binary_maps: 0.031869, reader_cost: 0.34061 s, batch_cost: 0.84875 s, samples: 160, ips: 18.85117\n",
      "[2022/02/27 11:22:23] root INFO: epoch: [1/1], iter: 3020, lr: 0.001000, loss: 0.370393, loss_shrink_maps: 0.159617, loss_threshold_maps: 0.172764, loss_binary_maps: 0.031869, reader_cost: 0.03643 s, batch_cost: 0.48327 s, samples: 160, ips: 33.10771\n",
      "[2022/02/27 11:22:35] root INFO: epoch: [1/1], iter: 3030, lr: 0.001000, loss: 0.368442, loss_shrink_maps: 0.162811, loss_threshold_maps: 0.171367, loss_binary_maps: 0.032261, reader_cost: 0.52419 s, batch_cost: 1.06396 s, samples: 160, ips: 15.03817\n",
      "[2022/02/27 11:22:40] root INFO: epoch: [1/1], iter: 3040, lr: 0.001000, loss: 0.374721, loss_shrink_maps: 0.171988, loss_threshold_maps: 0.172845, loss_binary_maps: 0.034232, reader_cost: 0.04323 s, batch_cost: 0.53846 s, samples: 160, ips: 29.71416\n",
      "[2022/02/27 11:22:51] root INFO: epoch: [1/1], iter: 3050, lr: 0.001000, loss: 0.402815, loss_shrink_maps: 0.181089, loss_threshold_maps: 0.182548, loss_binary_maps: 0.035828, reader_cost: 0.47833 s, batch_cost: 0.96990 s, samples: 160, ips: 16.49662\n",
      "[2022/02/27 11:22:58] root INFO: epoch: [1/1], iter: 3060, lr: 0.001000, loss: 0.404034, loss_shrink_maps: 0.181376, loss_threshold_maps: 0.183863, loss_binary_maps: 0.035922, reader_cost: 0.18966 s, batch_cost: 0.68739 s, samples: 160, ips: 23.27640\n",
      "[2022/02/27 11:23:07] root INFO: epoch: [1/1], iter: 3070, lr: 0.001000, loss: 0.378180, loss_shrink_maps: 0.166874, loss_threshold_maps: 0.176616, loss_binary_maps: 0.033140, reader_cost: 0.56114 s, batch_cost: 0.93732 s, samples: 160, ips: 17.06989\n",
      "[2022/02/27 11:23:16] root INFO: epoch: [1/1], iter: 3080, lr: 0.001000, loss: 0.369755, loss_shrink_maps: 0.162880, loss_threshold_maps: 0.176616, loss_binary_maps: 0.032482, reader_cost: 0.47383 s, batch_cost: 0.89750 s, samples: 160, ips: 17.82739\n",
      "[2022/02/27 11:23:26] root INFO: epoch: [1/1], iter: 3090, lr: 0.001000, loss: 0.367183, loss_shrink_maps: 0.162919, loss_threshold_maps: 0.170727, loss_binary_maps: 0.032520, reader_cost: 0.35785 s, batch_cost: 0.91570 s, samples: 160, ips: 17.47307\n",
      "[2022/02/27 11:23:35] root INFO: epoch: [1/1], iter: 3100, lr: 0.001000, loss: 0.364099, loss_shrink_maps: 0.160728, loss_threshold_maps: 0.169502, loss_binary_maps: 0.031867, reader_cost: 0.17691 s, batch_cost: 0.79158 s, samples: 160, ips: 20.21282\n",
      "[2022/02/27 11:23:44] root INFO: epoch: [1/1], iter: 3110, lr: 0.001000, loss: 0.360764, loss_shrink_maps: 0.155442, loss_threshold_maps: 0.171914, loss_binary_maps: 0.030666, reader_cost: 0.35321 s, batch_cost: 0.79616 s, samples: 160, ips: 20.09643\n",
      "[2022/02/27 11:23:51] root INFO: epoch: [1/1], iter: 3120, lr: 0.001000, loss: 0.377249, loss_shrink_maps: 0.158886, loss_threshold_maps: 0.182832, loss_binary_maps: 0.031505, reader_cost: 0.31501 s, batch_cost: 0.69156 s, samples: 160, ips: 23.13612\n",
      "[2022/02/27 11:24:01] root INFO: epoch: [1/1], iter: 3130, lr: 0.001000, loss: 0.378340, loss_shrink_maps: 0.167734, loss_threshold_maps: 0.181399, loss_binary_maps: 0.033158, reader_cost: 0.44338 s, batch_cost: 0.95473 s, samples: 160, ips: 16.75871\n",
      "[2022/02/27 11:24:07] root INFO: epoch: [1/1], iter: 3140, lr: 0.001000, loss: 0.378335, loss_shrink_maps: 0.166623, loss_threshold_maps: 0.183181, loss_binary_maps: 0.033043, reader_cost: 0.03617 s, batch_cost: 0.60284 s, samples: 160, ips: 26.54097\n",
      "[2022/02/27 11:24:15] root INFO: epoch: [1/1], iter: 3150, lr: 0.001000, loss: 0.378825, loss_shrink_maps: 0.160042, loss_threshold_maps: 0.183272, loss_binary_maps: 0.031917, reader_cost: 0.20349 s, batch_cost: 0.72753 s, samples: 160, ips: 21.99232\n",
      "[2022/02/27 11:24:22] root INFO: epoch: [1/1], iter: 3160, lr: 0.001000, loss: 0.381396, loss_shrink_maps: 0.158719, loss_threshold_maps: 0.182031, loss_binary_maps: 0.031695, reader_cost: 0.12971 s, batch_cost: 0.68790 s, samples: 160, ips: 23.25933\n",
      "[2022/02/27 11:24:29] root INFO: epoch: [1/1], iter: 3170, lr: 0.001000, loss: 0.380862, loss_shrink_maps: 0.163561, loss_threshold_maps: 0.182840, loss_binary_maps: 0.032587, reader_cost: 0.05764 s, batch_cost: 0.68363 s, samples: 160, ips: 23.40437\n",
      "[2022/02/27 11:24:36] root INFO: epoch: [1/1], iter: 3180, lr: 0.001000, loss: 0.385553, loss_shrink_maps: 0.166981, loss_threshold_maps: 0.186239, loss_binary_maps: 0.033261, reader_cost: 0.03655 s, batch_cost: 0.56905 s, samples: 160, ips: 28.11700\n",
      "[2022/02/27 11:24:43] root INFO: epoch: [1/1], iter: 3190, lr: 0.001000, loss: 0.372457, loss_shrink_maps: 0.164363, loss_threshold_maps: 0.182923, loss_binary_maps: 0.032543, reader_cost: 0.03757 s, batch_cost: 0.68296 s, samples: 160, ips: 23.42746\n",
      "[2022/02/27 11:24:50] root INFO: epoch: [1/1], iter: 3200, lr: 0.001000, loss: 0.365454, loss_shrink_maps: 0.158390, loss_threshold_maps: 0.178218, loss_binary_maps: 0.031418, reader_cost: 0.13409 s, batch_cost: 0.70868 s, samples: 160, ips: 22.57706\n",
      "[2022/02/27 11:24:58] root INFO: epoch: [1/1], iter: 3210, lr: 0.001000, loss: 0.367852, loss_shrink_maps: 0.158390, loss_threshold_maps: 0.180134, loss_binary_maps: 0.031418, reader_cost: 0.22357 s, batch_cost: 0.74844 s, samples: 160, ips: 21.37787\n",
      "[2022/02/27 11:25:05] root INFO: epoch: [1/1], iter: 3220, lr: 0.001000, loss: 0.365393, loss_shrink_maps: 0.154452, loss_threshold_maps: 0.179644, loss_binary_maps: 0.030482, reader_cost: 0.13394 s, batch_cost: 0.70997 s, samples: 160, ips: 22.53626\n",
      "[2022/02/27 11:25:16] root INFO: epoch: [1/1], iter: 3230, lr: 0.001000, loss: 0.363644, loss_shrink_maps: 0.148132, loss_threshold_maps: 0.180550, loss_binary_maps: 0.029568, reader_cost: 0.55153 s, batch_cost: 1.03032 s, samples: 160, ips: 15.52913\n",
      "[2022/02/27 11:25:23] root INFO: epoch: [1/1], iter: 3240, lr: 0.001000, loss: 0.360538, loss_shrink_maps: 0.148132, loss_threshold_maps: 0.181113, loss_binary_maps: 0.029387, reader_cost: 0.21485 s, batch_cost: 0.76463 s, samples: 160, ips: 20.92504\n",
      "[2022/02/27 11:25:33] root INFO: epoch: [1/1], iter: 3250, lr: 0.001000, loss: 0.359179, loss_shrink_maps: 0.161449, loss_threshold_maps: 0.170059, loss_binary_maps: 0.032316, reader_cost: 0.31671 s, batch_cost: 0.87820 s, samples: 160, ips: 18.21903\n",
      "[2022/02/27 11:25:41] root INFO: epoch: [1/1], iter: 3260, lr: 0.001000, loss: 0.358867, loss_shrink_maps: 0.162597, loss_threshold_maps: 0.167342, loss_binary_maps: 0.032316, reader_cost: 0.37079 s, batch_cost: 0.83799 s, samples: 160, ips: 19.09341\n",
      "[2022/02/27 11:25:51] root INFO: epoch: [1/1], iter: 3270, lr: 0.001000, loss: 0.361893, loss_shrink_maps: 0.156752, loss_threshold_maps: 0.176589, loss_binary_maps: 0.031206, reader_cost: 0.60077 s, batch_cost: 0.97443 s, samples: 160, ips: 16.41990\n",
      "[2022/02/27 11:25:59] root INFO: epoch: [1/1], iter: 3280, lr: 0.001000, loss: 0.369350, loss_shrink_maps: 0.164118, loss_threshold_maps: 0.177969, loss_binary_maps: 0.032465, reader_cost: 0.39615 s, batch_cost: 0.79305 s, samples: 160, ips: 20.17525\n",
      "[2022/02/27 11:26:10] root INFO: epoch: [1/1], iter: 3290, lr: 0.001000, loss: 0.372137, loss_shrink_maps: 0.164118, loss_threshold_maps: 0.180443, loss_binary_maps: 0.032465, reader_cost: 0.51910 s, batch_cost: 1.00899 s, samples: 160, ips: 15.85743\n",
      "[2022/02/27 11:26:19] root INFO: epoch: [1/1], iter: 3300, lr: 0.001000, loss: 0.378203, loss_shrink_maps: 0.165657, loss_threshold_maps: 0.181953, loss_binary_maps: 0.033001, reader_cost: 0.49363 s, batch_cost: 0.89385 s, samples: 160, ips: 17.90017\n",
      "[2022/02/27 11:26:28] root INFO: epoch: [1/1], iter: 3310, lr: 0.001000, loss: 0.378186, loss_shrink_maps: 0.164270, loss_threshold_maps: 0.180272, loss_binary_maps: 0.032462, reader_cost: 0.39098 s, batch_cost: 0.94232 s, samples: 160, ips: 16.97946\n",
      "[2022/02/27 11:26:35] root INFO: epoch: [1/1], iter: 3320, lr: 0.001000, loss: 0.376557, loss_shrink_maps: 0.162347, loss_threshold_maps: 0.177859, loss_binary_maps: 0.032290, reader_cost: 0.00603 s, batch_cost: 0.62100 s, samples: 160, ips: 25.76481\n",
      "[2022/02/27 11:26:42] root INFO: epoch: [1/1], iter: 3330, lr: 0.001000, loss: 0.377369, loss_shrink_maps: 0.168468, loss_threshold_maps: 0.175465, loss_binary_maps: 0.033642, reader_cost: 0.10426 s, batch_cost: 0.72208 s, samples: 160, ips: 22.15807\n",
      "[2022/02/27 11:26:49] root INFO: epoch: [1/1], iter: 3340, lr: 0.001000, loss: 0.391548, loss_shrink_maps: 0.168468, loss_threshold_maps: 0.188712, loss_binary_maps: 0.033642, reader_cost: 0.02381 s, batch_cost: 0.62899 s, samples: 160, ips: 25.43757\n",
      "[2022/02/27 11:26:56] root INFO: epoch: [1/1], iter: 3350, lr: 0.001000, loss: 0.420362, loss_shrink_maps: 0.172663, loss_threshold_maps: 0.197251, loss_binary_maps: 0.034182, reader_cost: 0.15976 s, batch_cost: 0.66464 s, samples: 160, ips: 24.07323\n",
      "[2022/02/27 11:27:04] root INFO: epoch: [1/1], iter: 3360, lr: 0.001000, loss: 0.431712, loss_shrink_maps: 0.182125, loss_threshold_maps: 0.209041, loss_binary_maps: 0.036401, reader_cost: 0.27083 s, batch_cost: 0.81553 s, samples: 160, ips: 19.61925\n",
      "[2022/02/27 11:27:11] root INFO: epoch: [1/1], iter: 3370, lr: 0.001000, loss: 0.402340, loss_shrink_maps: 0.168398, loss_threshold_maps: 0.199645, loss_binary_maps: 0.033576, reader_cost: 0.08585 s, batch_cost: 0.65383 s, samples: 160, ips: 24.47111\n",
      "[2022/02/27 11:27:18] root INFO: epoch: [1/1], iter: 3380, lr: 0.001000, loss: 0.381523, loss_shrink_maps: 0.160111, loss_threshold_maps: 0.184859, loss_binary_maps: 0.031712, reader_cost: 0.11209 s, batch_cost: 0.70264 s, samples: 160, ips: 22.77117\n",
      "[2022/02/27 11:27:25] root INFO: epoch: [1/1], iter: 3390, lr: 0.001000, loss: 0.386670, loss_shrink_maps: 0.167145, loss_threshold_maps: 0.185016, loss_binary_maps: 0.033201, reader_cost: 0.00033 s, batch_cost: 0.66229 s, samples: 160, ips: 24.15872\n",
      "[2022/02/27 11:27:31] root INFO: epoch: [1/1], iter: 3400, lr: 0.001000, loss: 0.379031, loss_shrink_maps: 0.167145, loss_threshold_maps: 0.174276, loss_binary_maps: 0.033201, reader_cost: 0.05839 s, batch_cost: 0.64290 s, samples: 160, ips: 24.88741\n",
      "[2022/02/27 11:27:40] root INFO: epoch: [1/1], iter: 3410, lr: 0.001000, loss: 0.374929, loss_shrink_maps: 0.168395, loss_threshold_maps: 0.176457, loss_binary_maps: 0.033576, reader_cost: 0.29207 s, batch_cost: 0.86530 s, samples: 160, ips: 18.49072\n",
      "[2022/02/27 11:27:47] root INFO: epoch: [1/1], iter: 3420, lr: 0.001000, loss: 0.387651, loss_shrink_maps: 0.168868, loss_threshold_maps: 0.180278, loss_binary_maps: 0.033576, reader_cost: 0.02704 s, batch_cost: 0.63834 s, samples: 160, ips: 25.06513\n",
      "[2022/02/27 11:27:54] root INFO: epoch: [1/1], iter: 3430, lr: 0.001000, loss: 0.385151, loss_shrink_maps: 0.171950, loss_threshold_maps: 0.179543, loss_binary_maps: 0.034042, reader_cost: 0.06422 s, batch_cost: 0.63212 s, samples: 160, ips: 25.31161\n",
      "[2022/02/27 11:28:01] root INFO: epoch: [1/1], iter: 3440, lr: 0.001000, loss: 0.377980, loss_shrink_maps: 0.161298, loss_threshold_maps: 0.176141, loss_binary_maps: 0.032269, reader_cost: 0.09436 s, batch_cost: 0.63410 s, samples: 160, ips: 25.23260\n",
      "[2022/02/27 11:28:07] root INFO: epoch: [1/1], iter: 3450, lr: 0.001000, loss: 0.364017, loss_shrink_maps: 0.161298, loss_threshold_maps: 0.167717, loss_binary_maps: 0.032017, reader_cost: 0.05434 s, batch_cost: 0.66760 s, samples: 160, ips: 23.96629\n",
      "[2022/02/27 11:28:14] root INFO: epoch: [1/1], iter: 3460, lr: 0.001000, loss: 0.357590, loss_shrink_maps: 0.159114, loss_threshold_maps: 0.165526, loss_binary_maps: 0.031822, reader_cost: 0.03707 s, batch_cost: 0.62879 s, samples: 160, ips: 25.44555\n",
      "[2022/02/27 11:28:21] root INFO: epoch: [1/1], iter: 3470, lr: 0.001000, loss: 0.359216, loss_shrink_maps: 0.158903, loss_threshold_maps: 0.167523, loss_binary_maps: 0.031571, reader_cost: 0.10616 s, batch_cost: 0.62049 s, samples: 160, ips: 25.78590\n",
      "[2022/02/27 11:28:28] root INFO: epoch: [1/1], iter: 3480, lr: 0.001000, loss: 0.376754, loss_shrink_maps: 0.165426, loss_threshold_maps: 0.178181, loss_binary_maps: 0.032793, reader_cost: 0.00168 s, batch_cost: 0.62177 s, samples: 160, ips: 25.73296\n",
      "[2022/02/27 11:28:35] root INFO: epoch: [1/1], iter: 3490, lr: 0.001000, loss: 0.374575, loss_shrink_maps: 0.165854, loss_threshold_maps: 0.174867, loss_binary_maps: 0.032652, reader_cost: 0.03281 s, batch_cost: 0.67295 s, samples: 160, ips: 23.77579\n",
      "[2022/02/27 11:28:41] root INFO: epoch: [1/1], iter: 3500, lr: 0.001000, loss: 0.360057, loss_shrink_maps: 0.160659, loss_threshold_maps: 0.167036, loss_binary_maps: 0.031988, reader_cost: 0.06557 s, batch_cost: 0.59808 s, samples: 160, ips: 26.75216\n",
      "[2022/02/27 11:28:49] root INFO: epoch: [1/1], iter: 3510, lr: 0.001000, loss: 0.359697, loss_shrink_maps: 0.159913, loss_threshold_maps: 0.167873, loss_binary_maps: 0.031630, reader_cost: 0.17339 s, batch_cost: 0.73330 s, samples: 160, ips: 21.81916\n",
      "[2022/02/27 11:28:56] root INFO: epoch: [1/1], iter: 3520, lr: 0.001000, loss: 0.359697, loss_shrink_maps: 0.163405, loss_threshold_maps: 0.167481, loss_binary_maps: 0.032459, reader_cost: 0.06425 s, batch_cost: 0.65168 s, samples: 160, ips: 24.55177\n",
      "[2022/02/27 11:29:09] root INFO: epoch: [1/1], iter: 3530, lr: 0.001000, loss: 0.369335, loss_shrink_maps: 0.163173, loss_threshold_maps: 0.172914, loss_binary_maps: 0.032424, reader_cost: 0.79147 s, batch_cost: 1.27042 s, samples: 160, ips: 12.59430\n",
      "[2022/02/27 11:29:15] root INFO: epoch: [1/1], iter: 3540, lr: 0.001000, loss: 0.365612, loss_shrink_maps: 0.158090, loss_threshold_maps: 0.171992, loss_binary_maps: 0.031397, reader_cost: 0.06295 s, batch_cost: 0.61134 s, samples: 160, ips: 26.17186\n",
      "[2022/02/27 11:29:23] root INFO: epoch: [1/1], iter: 3550, lr: 0.001000, loss: 0.367041, loss_shrink_maps: 0.161316, loss_threshold_maps: 0.174527, loss_binary_maps: 0.032337, reader_cost: 0.21440 s, batch_cost: 0.71456 s, samples: 160, ips: 22.39129\n",
      "[2022/02/27 11:29:30] root INFO: epoch: [1/1], iter: 3560, lr: 0.001000, loss: 0.374488, loss_shrink_maps: 0.166974, loss_threshold_maps: 0.185422, loss_binary_maps: 0.033146, reader_cost: 0.18505 s, batch_cost: 0.64656 s, samples: 160, ips: 24.74649\n",
      "[2022/02/27 11:29:38] root INFO: epoch: [1/1], iter: 3570, lr: 0.001000, loss: 0.383630, loss_shrink_maps: 0.164687, loss_threshold_maps: 0.196843, loss_binary_maps: 0.032852, reader_cost: 0.18725 s, batch_cost: 0.77015 s, samples: 160, ips: 20.77526\n",
      "[2022/02/27 11:29:47] root INFO: epoch: [1/1], iter: 3580, lr: 0.001000, loss: 0.383208, loss_shrink_maps: 0.163459, loss_threshold_maps: 0.188964, loss_binary_maps: 0.032499, reader_cost: 0.45395 s, batch_cost: 0.82343 s, samples: 160, ips: 19.43081\n",
      "[2022/02/27 11:30:01] root INFO: epoch: [1/1], iter: 3590, lr: 0.001000, loss: 0.359024, loss_shrink_maps: 0.155109, loss_threshold_maps: 0.170555, loss_binary_maps: 0.030940, reader_cost: 0.96743 s, batch_cost: 1.36859 s, samples: 160, ips: 11.69083\n",
      "[2022/02/27 11:30:10] root INFO: epoch: [1/1], iter: 3600, lr: 0.001000, loss: 0.356414, loss_shrink_maps: 0.153918, loss_threshold_maps: 0.169836, loss_binary_maps: 0.030500, reader_cost: 0.39091 s, batch_cost: 0.86319 s, samples: 160, ips: 18.53587\n",
      "[2022/02/27 11:30:16] root INFO: epoch: [1/1], iter: 3610, lr: 0.001000, loss: 0.361724, loss_shrink_maps: 0.154149, loss_threshold_maps: 0.175994, loss_binary_maps: 0.030647, reader_cost: 0.19377 s, batch_cost: 0.64328 s, samples: 160, ips: 24.87266\n",
      "[2022/02/27 11:30:24] root INFO: epoch: [1/1], iter: 3620, lr: 0.001000, loss: 0.371886, loss_shrink_maps: 0.156744, loss_threshold_maps: 0.176248, loss_binary_maps: 0.031351, reader_cost: 0.33649 s, batch_cost: 0.73505 s, samples: 160, ips: 21.76737\n",
      "[2022/02/27 11:30:35] root INFO: epoch: [1/1], iter: 3630, lr: 0.001000, loss: 0.368000, loss_shrink_maps: 0.159668, loss_threshold_maps: 0.175841, loss_binary_maps: 0.031465, reader_cost: 0.44744 s, batch_cost: 1.02700 s, samples: 160, ips: 15.57937\n",
      "[2022/02/27 11:30:45] root INFO: epoch: [1/1], iter: 3640, lr: 0.001000, loss: 0.383071, loss_shrink_maps: 0.162994, loss_threshold_maps: 0.180398, loss_binary_maps: 0.032039, reader_cost: 0.57996 s, batch_cost: 1.02888 s, samples: 160, ips: 15.55096\n",
      "[2022/02/27 11:30:55] root INFO: epoch: [1/1], iter: 3650, lr: 0.001000, loss: 0.383071, loss_shrink_maps: 0.167640, loss_threshold_maps: 0.178951, loss_binary_maps: 0.033500, reader_cost: 0.55413 s, batch_cost: 0.94601 s, samples: 160, ips: 16.91316\n",
      "[2022/02/27 11:31:03] root INFO: epoch: [1/1], iter: 3660, lr: 0.001000, loss: 0.357390, loss_shrink_maps: 0.154934, loss_threshold_maps: 0.174123, loss_binary_maps: 0.030937, reader_cost: 0.31290 s, batch_cost: 0.74356 s, samples: 160, ips: 21.51814\n",
      "[2022/02/27 11:31:13] root INFO: epoch: [1/1], iter: 3670, lr: 0.001000, loss: 0.361789, loss_shrink_maps: 0.152396, loss_threshold_maps: 0.179531, loss_binary_maps: 0.030246, reader_cost: 0.52024 s, batch_cost: 1.05091 s, samples: 160, ips: 15.22490\n",
      "[2022/02/27 11:31:19] root INFO: epoch: [1/1], iter: 3680, lr: 0.001000, loss: 0.363748, loss_shrink_maps: 0.163019, loss_threshold_maps: 0.178215, loss_binary_maps: 0.032279, reader_cost: 0.04710 s, batch_cost: 0.60195 s, samples: 160, ips: 26.58011\n",
      "[2022/02/27 11:31:27] root INFO: epoch: [1/1], iter: 3690, lr: 0.001000, loss: 0.361223, loss_shrink_maps: 0.159332, loss_threshold_maps: 0.172427, loss_binary_maps: 0.031553, reader_cost: 0.09834 s, batch_cost: 0.69614 s, samples: 160, ips: 22.98386\n",
      "[2022/02/27 11:31:34] root INFO: epoch: [1/1], iter: 3700, lr: 0.001000, loss: 0.352836, loss_shrink_maps: 0.153839, loss_threshold_maps: 0.167773, loss_binary_maps: 0.030573, reader_cost: 0.00368 s, batch_cost: 0.64181 s, samples: 160, ips: 24.92944\n",
      "[2022/02/27 11:31:42] root INFO: epoch: [1/1], iter: 3710, lr: 0.001000, loss: 0.373259, loss_shrink_maps: 0.163100, loss_threshold_maps: 0.173287, loss_binary_maps: 0.032424, reader_cost: 0.18345 s, batch_cost: 0.76834 s, samples: 160, ips: 20.82404\n",
      "[2022/02/27 11:31:50] root INFO: epoch: [1/1], iter: 3720, lr: 0.001000, loss: 0.380823, loss_shrink_maps: 0.166946, loss_threshold_maps: 0.178844, loss_binary_maps: 0.033198, reader_cost: 0.21787 s, batch_cost: 0.84811 s, samples: 160, ips: 18.86559\n",
      "[2022/02/27 11:31:57] root INFO: epoch: [1/1], iter: 3730, lr: 0.001000, loss: 0.369939, loss_shrink_maps: 0.162114, loss_threshold_maps: 0.179417, loss_binary_maps: 0.032278, reader_cost: 0.06204 s, batch_cost: 0.65481 s, samples: 160, ips: 24.43444\n",
      "[2022/02/27 11:32:03] root INFO: epoch: [1/1], iter: 3740, lr: 0.001000, loss: 0.385215, loss_shrink_maps: 0.158857, loss_threshold_maps: 0.188546, loss_binary_maps: 0.031766, reader_cost: 0.01643 s, batch_cost: 0.51519 s, samples: 160, ips: 31.05635\n",
      "[2022/02/27 11:32:12] root INFO: epoch: [1/1], iter: 3750, lr: 0.001000, loss: 0.395983, loss_shrink_maps: 0.161862, loss_threshold_maps: 0.190615, loss_binary_maps: 0.032161, reader_cost: 0.30523 s, batch_cost: 0.86344 s, samples: 160, ips: 18.53064\n",
      "[2022/02/27 11:32:19] root INFO: epoch: [1/1], iter: 3760, lr: 0.001000, loss: 0.402735, loss_shrink_maps: 0.169056, loss_threshold_maps: 0.191782, loss_binary_maps: 0.033498, reader_cost: 0.03677 s, batch_cost: 0.63500 s, samples: 160, ips: 25.19672\n",
      "[2022/02/27 11:32:25] root INFO: epoch: [1/1], iter: 3770, lr: 0.001000, loss: 0.434085, loss_shrink_maps: 0.179046, loss_threshold_maps: 0.204570, loss_binary_maps: 0.035999, reader_cost: 0.03597 s, batch_cost: 0.63259 s, samples: 160, ips: 25.29272\n",
      "[2022/02/27 11:32:32] root INFO: epoch: [1/1], iter: 3780, lr: 0.001000, loss: 0.385491, loss_shrink_maps: 0.164866, loss_threshold_maps: 0.189794, loss_binary_maps: 0.033064, reader_cost: 0.00477 s, batch_cost: 0.63278 s, samples: 160, ips: 25.28505\n",
      "[2022/02/27 11:32:39] root INFO: epoch: [1/1], iter: 3790, lr: 0.001000, loss: 0.387174, loss_shrink_maps: 0.161961, loss_threshold_maps: 0.181711, loss_binary_maps: 0.032598, reader_cost: 0.00775 s, batch_cost: 0.66449 s, samples: 160, ips: 24.07878\n",
      "[2022/02/27 11:32:46] root INFO: epoch: [1/1], iter: 3800, lr: 0.001000, loss: 0.367354, loss_shrink_maps: 0.160489, loss_threshold_maps: 0.179558, loss_binary_maps: 0.031690, reader_cost: 0.04130 s, batch_cost: 0.66248 s, samples: 160, ips: 24.15170\n",
      "[2022/02/27 11:32:53] root INFO: epoch: [1/1], iter: 3810, lr: 0.001000, loss: 0.353837, loss_shrink_maps: 0.150943, loss_threshold_maps: 0.170560, loss_binary_maps: 0.029991, reader_cost: 0.03753 s, batch_cost: 0.64993 s, samples: 160, ips: 24.61798\n",
      "[2022/02/27 11:33:00] root INFO: epoch: [1/1], iter: 3820, lr: 0.001000, loss: 0.353563, loss_shrink_maps: 0.152506, loss_threshold_maps: 0.172392, loss_binary_maps: 0.030210, reader_cost: 0.06292 s, batch_cost: 0.65458 s, samples: 160, ips: 24.44321\n",
      "[2022/02/27 11:33:07] root INFO: epoch: [1/1], iter: 3830, lr: 0.001000, loss: 0.368213, loss_shrink_maps: 0.158469, loss_threshold_maps: 0.178030, loss_binary_maps: 0.031473, reader_cost: 0.12793 s, batch_cost: 0.73398 s, samples: 160, ips: 21.79910\n",
      "[2022/02/27 11:33:14] root INFO: epoch: [1/1], iter: 3840, lr: 0.001000, loss: 0.370778, loss_shrink_maps: 0.159714, loss_threshold_maps: 0.178030, loss_binary_maps: 0.031798, reader_cost: 0.03862 s, batch_cost: 0.64522 s, samples: 160, ips: 24.79782\n",
      "[2022/02/27 11:33:21] root INFO: epoch: [1/1], iter: 3850, lr: 0.001000, loss: 0.361817, loss_shrink_maps: 0.158460, loss_threshold_maps: 0.174530, loss_binary_maps: 0.031950, reader_cost: 0.04165 s, batch_cost: 0.66466 s, samples: 160, ips: 24.07236\n",
      "[2022/02/27 11:33:28] root INFO: epoch: [1/1], iter: 3860, lr: 0.001000, loss: 0.367073, loss_shrink_maps: 0.161474, loss_threshold_maps: 0.173088, loss_binary_maps: 0.032530, reader_cost: 0.07666 s, batch_cost: 0.68197 s, samples: 160, ips: 23.46155\n",
      "[2022/02/27 11:33:37] root INFO: epoch: [1/1], iter: 3870, lr: 0.001000, loss: 0.368861, loss_shrink_maps: 0.166029, loss_threshold_maps: 0.173088, loss_binary_maps: 0.033273, reader_cost: 0.23549 s, batch_cost: 0.73377 s, samples: 160, ips: 21.80518\n",
      "[2022/02/27 11:33:44] root INFO: epoch: [1/1], iter: 3880, lr: 0.001000, loss: 0.361066, loss_shrink_maps: 0.159926, loss_threshold_maps: 0.166980, loss_binary_maps: 0.032134, reader_cost: 0.16258 s, batch_cost: 0.69778 s, samples: 160, ips: 22.92979\n",
      "[2022/02/27 11:33:51] root INFO: epoch: [1/1], iter: 3890, lr: 0.001000, loss: 0.350050, loss_shrink_maps: 0.158340, loss_threshold_maps: 0.161898, loss_binary_maps: 0.031916, reader_cost: 0.05807 s, batch_cost: 0.66090 s, samples: 160, ips: 24.20944\n",
      "[2022/02/27 11:33:59] root INFO: epoch: [1/1], iter: 3900, lr: 0.001000, loss: 0.346875, loss_shrink_maps: 0.155639, loss_threshold_maps: 0.162506, loss_binary_maps: 0.030786, reader_cost: 0.31024 s, batch_cost: 0.70610 s, samples: 160, ips: 22.65974\n",
      "[2022/02/27 11:34:12] root INFO: epoch: [1/1], iter: 3910, lr: 0.001000, loss: 0.351952, loss_shrink_maps: 0.155639, loss_threshold_maps: 0.167542, loss_binary_maps: 0.030786, reader_cost: 0.83757 s, batch_cost: 1.33472 s, samples: 160, ips: 11.98749\n",
      "[2022/02/27 11:34:22] root INFO: epoch: [1/1], iter: 3920, lr: 0.001000, loss: 0.362959, loss_shrink_maps: 0.156244, loss_threshold_maps: 0.170676, loss_binary_maps: 0.030896, reader_cost: 0.47440 s, batch_cost: 0.93238 s, samples: 160, ips: 17.16041\n",
      "[2022/02/27 11:34:29] root INFO: epoch: [1/1], iter: 3930, lr: 0.001000, loss: 0.352560, loss_shrink_maps: 0.155026, loss_threshold_maps: 0.171182, loss_binary_maps: 0.030570, reader_cost: 0.06465 s, batch_cost: 0.68896 s, samples: 160, ips: 23.22350\n",
      "[2022/02/27 11:34:36] root INFO: epoch: [1/1], iter: 3940, lr: 0.001000, loss: 0.348190, loss_shrink_maps: 0.148499, loss_threshold_maps: 0.166772, loss_binary_maps: 0.029613, reader_cost: 0.03846 s, batch_cost: 0.57337 s, samples: 160, ips: 27.90515\n",
      "[2022/02/27 11:34:43] root INFO: epoch: [1/1], iter: 3950, lr: 0.001000, loss: 0.346454, loss_shrink_maps: 0.154166, loss_threshold_maps: 0.166772, loss_binary_maps: 0.030856, reader_cost: 0.05847 s, batch_cost: 0.64541 s, samples: 160, ips: 24.79059\n",
      "[2022/02/27 11:34:53] root INFO: epoch: [1/1], iter: 3960, lr: 0.001000, loss: 0.362628, loss_shrink_maps: 0.161791, loss_threshold_maps: 0.166463, loss_binary_maps: 0.031918, reader_cost: 0.49923 s, batch_cost: 0.87416 s, samples: 160, ips: 18.30331\n",
      "[2022/02/27 11:35:00] root INFO: epoch: [1/1], iter: 3970, lr: 0.001000, loss: 0.368706, loss_shrink_maps: 0.161399, loss_threshold_maps: 0.173625, loss_binary_maps: 0.031863, reader_cost: 0.11411 s, batch_cost: 0.73658 s, samples: 160, ips: 21.72187\n",
      "[2022/02/27 11:35:06] root INFO: epoch: [1/1], iter: 3980, lr: 0.001000, loss: 0.346157, loss_shrink_maps: 0.152783, loss_threshold_maps: 0.169375, loss_binary_maps: 0.030253, reader_cost: 0.07384 s, batch_cost: 0.58599 s, samples: 160, ips: 27.30415\n",
      "[2022/02/27 11:35:16] root INFO: epoch: [1/1], iter: 3990, lr: 0.001000, loss: 0.342340, loss_shrink_maps: 0.153200, loss_threshold_maps: 0.158832, loss_binary_maps: 0.030613, reader_cost: 0.29511 s, batch_cost: 0.94311 s, samples: 160, ips: 16.96518\n",
      "[2022/02/27 11:35:23] root INFO: epoch: [1/1], iter: 4000, lr: 0.001000, loss: 0.368024, loss_shrink_maps: 0.165361, loss_threshold_maps: 0.169298, loss_binary_maps: 0.032743, reader_cost: 0.00941 s, batch_cost: 0.66370 s, samples: 160, ips: 24.10726\n",
      "eval model:: 100%|████████████████████████| 19154/19154 [15:17<00:00, 20.87it/s]\n",
      "[2022/02/27 11:50:41] root INFO: cur metric, precision: 0.9388491010166775, recall: 0.9786989662733633, hmean: 0.9583599601237188, fps: 29.135882279545996\n",
      "[2022/02/27 11:50:41] root INFO: save best model is to ./output/db_mv3/best_accuracy\n",
      "[2022/02/27 11:50:41] root INFO: best metric, hmean: 0.9583599601237188, precision: 0.9388491010166775, recall: 0.9786989662733633, fps: 29.135882279545996, best_epoch: 1\n",
      "[2022/02/27 11:50:46] root INFO: epoch: [1/1], iter: 4010, lr: 0.001000, loss: 0.372811, loss_shrink_maps: 0.171222, loss_threshold_maps: 0.169966, loss_binary_maps: 0.033980, reader_cost: 0.00033 s, batch_cost: 0.49251 s, samples: 160, ips: 32.48688\n",
      "[2022/02/27 11:50:53] root INFO: epoch: [1/1], iter: 4020, lr: 0.001000, loss: 0.366202, loss_shrink_maps: 0.166015, loss_threshold_maps: 0.168397, loss_binary_maps: 0.032764, reader_cost: 0.02545 s, batch_cost: 0.66199 s, samples: 160, ips: 24.16961\n",
      "[2022/02/27 11:51:00] root INFO: epoch: [1/1], iter: 4030, lr: 0.001000, loss: 0.357166, loss_shrink_maps: 0.158369, loss_threshold_maps: 0.167496, loss_binary_maps: 0.031588, reader_cost: 0.01439 s, batch_cost: 0.58599 s, samples: 160, ips: 27.30435\n",
      "[2022/02/27 11:51:07] root INFO: epoch: [1/1], iter: 4040, lr: 0.001000, loss: 0.351431, loss_shrink_maps: 0.156320, loss_threshold_maps: 0.163830, loss_binary_maps: 0.031264, reader_cost: 0.02694 s, batch_cost: 0.64096 s, samples: 160, ips: 24.96263\n",
      "[2022/02/27 11:51:14] root INFO: epoch: [1/1], iter: 4050, lr: 0.001000, loss: 0.353450, loss_shrink_maps: 0.155772, loss_threshold_maps: 0.167412, loss_binary_maps: 0.031259, reader_cost: 0.00307 s, batch_cost: 0.68445 s, samples: 160, ips: 23.37646\n",
      "[2022/02/27 11:51:21] root INFO: epoch: [1/1], iter: 4060, lr: 0.001000, loss: 0.361928, loss_shrink_maps: 0.158758, loss_threshold_maps: 0.175252, loss_binary_maps: 0.031643, reader_cost: 0.00666 s, batch_cost: 0.60175 s, samples: 160, ips: 26.58913\n",
      "[2022/02/27 11:51:27] root INFO: epoch: [1/1], iter: 4070, lr: 0.001000, loss: 0.370092, loss_shrink_maps: 0.164200, loss_threshold_maps: 0.176086, loss_binary_maps: 0.032632, reader_cost: 0.00510 s, batch_cost: 0.61809 s, samples: 160, ips: 25.88636\n",
      "[2022/02/27 11:51:34] root INFO: epoch: [1/1], iter: 4080, lr: 0.001000, loss: 0.374069, loss_shrink_maps: 0.164617, loss_threshold_maps: 0.174231, loss_binary_maps: 0.032405, reader_cost: 0.00651 s, batch_cost: 0.62092 s, samples: 160, ips: 25.76820\n",
      "[2022/02/27 11:51:40] root INFO: epoch: [1/1], iter: 4090, lr: 0.001000, loss: 0.374190, loss_shrink_maps: 0.167433, loss_threshold_maps: 0.170184, loss_binary_maps: 0.033101, reader_cost: 0.00935 s, batch_cost: 0.58428 s, samples: 160, ips: 27.38398\n",
      "[2022/02/27 11:51:47] root INFO: epoch: [1/1], iter: 4100, lr: 0.001000, loss: 0.368045, loss_shrink_maps: 0.166233, loss_threshold_maps: 0.163453, loss_binary_maps: 0.033162, reader_cost: 0.00497 s, batch_cost: 0.65089 s, samples: 160, ips: 24.58179\n",
      "[2022/02/27 11:51:55] root INFO: epoch: [1/1], iter: 4110, lr: 0.001000, loss: 0.347253, loss_shrink_maps: 0.155811, loss_threshold_maps: 0.160992, loss_binary_maps: 0.031284, reader_cost: 0.00581 s, batch_cost: 0.60641 s, samples: 160, ips: 26.38479\n",
      "[2022/02/27 11:52:02] root INFO: epoch: [1/1], iter: 4120, lr: 0.001000, loss: 0.347253, loss_shrink_maps: 0.155811, loss_threshold_maps: 0.163546, loss_binary_maps: 0.031284, reader_cost: 0.01763 s, batch_cost: 0.60664 s, samples: 160, ips: 26.37464\n",
      "[2022/02/27 11:52:08] root INFO: epoch: [1/1], iter: 4130, lr: 0.001000, loss: 0.378369, loss_shrink_maps: 0.164821, loss_threshold_maps: 0.174564, loss_binary_maps: 0.032824, reader_cost: 0.00495 s, batch_cost: 0.62066 s, samples: 160, ips: 25.77900\n",
      "[2022/02/27 11:52:15] root INFO: epoch: [1/1], iter: 4140, lr: 0.001000, loss: 0.386835, loss_shrink_maps: 0.168293, loss_threshold_maps: 0.181747, loss_binary_maps: 0.033406, reader_cost: 0.00448 s, batch_cost: 0.62376 s, samples: 160, ips: 25.65095\n",
      "[2022/02/27 11:52:21] root INFO: epoch: [1/1], iter: 4150, lr: 0.001000, loss: 0.390306, loss_shrink_maps: 0.166101, loss_threshold_maps: 0.179934, loss_binary_maps: 0.033041, reader_cost: 0.00944 s, batch_cost: 0.63667 s, samples: 160, ips: 25.13094\n",
      "[2022/02/27 11:52:28] root INFO: epoch: [1/1], iter: 4160, lr: 0.001000, loss: 0.371446, loss_shrink_maps: 0.165159, loss_threshold_maps: 0.167643, loss_binary_maps: 0.032953, reader_cost: 0.00527 s, batch_cost: 0.69203 s, samples: 160, ips: 23.12029\n",
      "[2022/02/27 11:52:35] root INFO: epoch: [1/1], iter: 4170, lr: 0.001000, loss: 0.374018, loss_shrink_maps: 0.161463, loss_threshold_maps: 0.174310, loss_binary_maps: 0.032030, reader_cost: 0.00954 s, batch_cost: 0.56491 s, samples: 160, ips: 28.32303\n",
      "[2022/02/27 11:52:42] root INFO: epoch: [1/1], iter: 4180, lr: 0.001000, loss: 0.377132, loss_shrink_maps: 0.159373, loss_threshold_maps: 0.183306, loss_binary_maps: 0.031726, reader_cost: 0.00974 s, batch_cost: 0.65112 s, samples: 160, ips: 24.57311\n",
      "[2022/02/27 11:52:49] root INFO: epoch: [1/1], iter: 4190, lr: 0.001000, loss: 0.355752, loss_shrink_maps: 0.155371, loss_threshold_maps: 0.168170, loss_binary_maps: 0.030930, reader_cost: 0.00968 s, batch_cost: 0.63037 s, samples: 160, ips: 25.38196\n",
      "[2022/02/27 11:52:55] root INFO: epoch: [1/1], iter: 4200, lr: 0.001000, loss: 0.348290, loss_shrink_maps: 0.151565, loss_threshold_maps: 0.164465, loss_binary_maps: 0.030091, reader_cost: 0.02545 s, batch_cost: 0.64885 s, samples: 160, ips: 24.65902\n",
      "[2022/02/27 11:53:02] root INFO: epoch: [1/1], iter: 4210, lr: 0.001000, loss: 0.357890, loss_shrink_maps: 0.161252, loss_threshold_maps: 0.165253, loss_binary_maps: 0.032247, reader_cost: 0.03088 s, batch_cost: 0.58936 s, samples: 160, ips: 27.14792\n",
      "[2022/02/27 11:53:09] root INFO: epoch: [1/1], iter: 4220, lr: 0.001000, loss: 0.378595, loss_shrink_maps: 0.165669, loss_threshold_maps: 0.173289, loss_binary_maps: 0.032651, reader_cost: 0.01639 s, batch_cost: 0.63339 s, samples: 160, ips: 25.26107\n",
      "[2022/02/27 11:53:16] root INFO: epoch: [1/1], iter: 4230, lr: 0.001000, loss: 0.379268, loss_shrink_maps: 0.169701, loss_threshold_maps: 0.173289, loss_binary_maps: 0.033431, reader_cost: 0.01479 s, batch_cost: 0.60278 s, samples: 160, ips: 26.54383\n",
      "[2022/02/27 11:53:23] root INFO: epoch: [1/1], iter: 4240, lr: 0.001000, loss: 0.379279, loss_shrink_maps: 0.165292, loss_threshold_maps: 0.174001, loss_binary_maps: 0.032848, reader_cost: 0.01883 s, batch_cost: 0.63636 s, samples: 160, ips: 25.14285\n",
      "[2022/02/27 11:53:29] root INFO: epoch: [1/1], iter: 4250, lr: 0.001000, loss: 0.376819, loss_shrink_maps: 0.162990, loss_threshold_maps: 0.179671, loss_binary_maps: 0.032338, reader_cost: 0.01093 s, batch_cost: 0.61796 s, samples: 160, ips: 25.89169\n",
      "[2022/02/27 11:53:36] root INFO: epoch: [1/1], iter: 4260, lr: 0.001000, loss: 0.370647, loss_shrink_maps: 0.163673, loss_threshold_maps: 0.175967, loss_binary_maps: 0.032580, reader_cost: 0.00929 s, batch_cost: 0.66025 s, samples: 160, ips: 24.23328\n",
      "[2022/02/27 11:53:43] root INFO: epoch: [1/1], iter: 4270, lr: 0.001000, loss: 0.362525, loss_shrink_maps: 0.162188, loss_threshold_maps: 0.168049, loss_binary_maps: 0.032212, reader_cost: 0.00935 s, batch_cost: 0.61146 s, samples: 160, ips: 26.16698\n",
      "[2022/02/27 11:53:50] root INFO: epoch: [1/1], iter: 4280, lr: 0.001000, loss: 0.352677, loss_shrink_maps: 0.157892, loss_threshold_maps: 0.162230, loss_binary_maps: 0.031529, reader_cost: 0.01376 s, batch_cost: 0.63223 s, samples: 160, ips: 25.30721\n",
      "[2022/02/27 11:53:56] root INFO: epoch: [1/1], iter: 4290, lr: 0.001000, loss: 0.339910, loss_shrink_maps: 0.155885, loss_threshold_maps: 0.161903, loss_binary_maps: 0.030976, reader_cost: 0.01295 s, batch_cost: 0.59045 s, samples: 160, ips: 27.09810\n",
      "[2022/02/27 11:54:03] root INFO: epoch: [1/1], iter: 4300, lr: 0.001000, loss: 0.363214, loss_shrink_maps: 0.165127, loss_threshold_maps: 0.164053, loss_binary_maps: 0.032943, reader_cost: 0.00781 s, batch_cost: 0.60734 s, samples: 160, ips: 26.34449\n",
      "[2022/02/27 11:54:10] root INFO: epoch: [1/1], iter: 4310, lr: 0.001000, loss: 0.354965, loss_shrink_maps: 0.156307, loss_threshold_maps: 0.161932, loss_binary_maps: 0.031263, reader_cost: 0.00986 s, batch_cost: 0.66848 s, samples: 160, ips: 23.93500\n",
      "[2022/02/27 11:54:17] root INFO: epoch: [1/1], iter: 4320, lr: 0.001000, loss: 0.345437, loss_shrink_maps: 0.151173, loss_threshold_maps: 0.158529, loss_binary_maps: 0.030222, reader_cost: 0.00664 s, batch_cost: 0.66308 s, samples: 160, ips: 24.12989\n",
      "[2022/02/27 11:54:24] root INFO: epoch: [1/1], iter: 4330, lr: 0.001000, loss: 0.354607, loss_shrink_maps: 0.160213, loss_threshold_maps: 0.158679, loss_binary_maps: 0.031820, reader_cost: 0.01329 s, batch_cost: 0.57872 s, samples: 160, ips: 27.64737\n",
      "[2022/02/27 11:54:30] root INFO: epoch: [1/1], iter: 4340, lr: 0.001000, loss: 0.369301, loss_shrink_maps: 0.167137, loss_threshold_maps: 0.166747, loss_binary_maps: 0.033307, reader_cost: 0.01437 s, batch_cost: 0.59420 s, samples: 160, ips: 26.92682\n",
      "[2022/02/27 11:54:37] root INFO: epoch: [1/1], iter: 4350, lr: 0.001000, loss: 0.375140, loss_shrink_maps: 0.169474, loss_threshold_maps: 0.168721, loss_binary_maps: 0.033836, reader_cost: 0.00448 s, batch_cost: 0.66134 s, samples: 160, ips: 24.19331\n",
      "[2022/02/27 11:54:44] root INFO: epoch: [1/1], iter: 4360, lr: 0.001000, loss: 0.365546, loss_shrink_maps: 0.160231, loss_threshold_maps: 0.170306, loss_binary_maps: 0.031894, reader_cost: 0.02971 s, batch_cost: 0.64817 s, samples: 160, ips: 24.68483\n",
      "[2022/02/27 11:54:51] root INFO: epoch: [1/1], iter: 4370, lr: 0.001000, loss: 0.355561, loss_shrink_maps: 0.158409, loss_threshold_maps: 0.170008, loss_binary_maps: 0.031451, reader_cost: 0.00834 s, batch_cost: 0.58502 s, samples: 160, ips: 27.34929\n",
      "[2022/02/27 11:54:58] root INFO: epoch: [1/1], iter: 4380, lr: 0.001000, loss: 0.356902, loss_shrink_maps: 0.158780, loss_threshold_maps: 0.166521, loss_binary_maps: 0.031914, reader_cost: 0.00653 s, batch_cost: 0.66596 s, samples: 160, ips: 24.02530\n",
      "[2022/02/27 11:55:04] root INFO: epoch: [1/1], iter: 4390, lr: 0.001000, loss: 0.375435, loss_shrink_maps: 0.167523, loss_threshold_maps: 0.169673, loss_binary_maps: 0.033051, reader_cost: 0.00532 s, batch_cost: 0.61291 s, samples: 160, ips: 26.10486\n",
      "[2022/02/27 11:55:11] root INFO: epoch: [1/1], iter: 4400, lr: 0.001000, loss: 0.373520, loss_shrink_maps: 0.166248, loss_threshold_maps: 0.177196, loss_binary_maps: 0.032857, reader_cost: 0.00512 s, batch_cost: 0.66237 s, samples: 160, ips: 24.15575\n",
      "[2022/02/27 11:55:17] root INFO: epoch: [1/1], iter: 4410, lr: 0.001000, loss: 0.394707, loss_shrink_maps: 0.167861, loss_threshold_maps: 0.194470, loss_binary_maps: 0.033214, reader_cost: 0.00475 s, batch_cost: 0.62685 s, samples: 160, ips: 25.52459\n",
      "[2022/02/27 11:55:24] root INFO: epoch: [1/1], iter: 4420, lr: 0.001000, loss: 0.380367, loss_shrink_maps: 0.164145, loss_threshold_maps: 0.188752, loss_binary_maps: 0.032475, reader_cost: 0.00504 s, batch_cost: 0.67004 s, samples: 160, ips: 23.87929\n",
      "[2022/02/27 11:55:31] root INFO: epoch: [1/1], iter: 4430, lr: 0.001000, loss: 0.376160, loss_shrink_maps: 0.164794, loss_threshold_maps: 0.182185, loss_binary_maps: 0.032538, reader_cost: 0.00802 s, batch_cost: 0.60439 s, samples: 160, ips: 26.47299\n",
      "[2022/02/27 11:55:38] root INFO: epoch: [1/1], iter: 4440, lr: 0.001000, loss: 0.374232, loss_shrink_maps: 0.161427, loss_threshold_maps: 0.177093, loss_binary_maps: 0.032230, reader_cost: 0.00337 s, batch_cost: 0.69402 s, samples: 160, ips: 23.05423\n",
      "[2022/02/27 11:55:45] root INFO: epoch: [1/1], iter: 4450, lr: 0.001000, loss: 0.369684, loss_shrink_maps: 0.159186, loss_threshold_maps: 0.173590, loss_binary_maps: 0.031947, reader_cost: 0.01321 s, batch_cost: 0.57400 s, samples: 160, ips: 27.87446\n",
      "[2022/02/27 11:55:51] root INFO: epoch: [1/1], iter: 4460, lr: 0.001000, loss: 0.376407, loss_shrink_maps: 0.168607, loss_threshold_maps: 0.170053, loss_binary_maps: 0.033461, reader_cost: 0.08997 s, batch_cost: 0.59339 s, samples: 160, ips: 26.96385\n",
      "[2022/02/27 11:55:58] root INFO: epoch: [1/1], iter: 4470, lr: 0.001000, loss: 0.364201, loss_shrink_maps: 0.167441, loss_threshold_maps: 0.167055, loss_binary_maps: 0.033009, reader_cost: 0.06507 s, batch_cost: 0.65273 s, samples: 160, ips: 24.51255\n",
      "[2022/02/27 11:56:04] root INFO: epoch: [1/1], iter: 4480, lr: 0.001000, loss: 0.356650, loss_shrink_maps: 0.159307, loss_threshold_maps: 0.172098, loss_binary_maps: 0.031703, reader_cost: 0.04570 s, batch_cost: 0.64970 s, samples: 160, ips: 24.62683\n",
      "[2022/02/27 11:56:11] root INFO: epoch: [1/1], iter: 4490, lr: 0.001000, loss: 0.355827, loss_shrink_maps: 0.152480, loss_threshold_maps: 0.179739, loss_binary_maps: 0.030390, reader_cost: 0.08448 s, batch_cost: 0.66108 s, samples: 160, ips: 24.20283\n",
      "[2022/02/27 11:56:18] root INFO: epoch: [1/1], iter: 4500, lr: 0.001000, loss: 0.363836, loss_shrink_maps: 0.159895, loss_threshold_maps: 0.178374, loss_binary_maps: 0.031796, reader_cost: 0.06564 s, batch_cost: 0.62866 s, samples: 160, ips: 25.45081\n",
      "[2022/02/27 11:56:24] root INFO: epoch: [1/1], iter: 4510, lr: 0.001000, loss: 0.367043, loss_shrink_maps: 0.164533, loss_threshold_maps: 0.174204, loss_binary_maps: 0.032899, reader_cost: 0.04517 s, batch_cost: 0.67388 s, samples: 160, ips: 23.74307\n",
      "[2022/02/27 11:56:31] root INFO: epoch: [1/1], iter: 4520, lr: 0.001000, loss: 0.369436, loss_shrink_maps: 0.166530, loss_threshold_maps: 0.173703, loss_binary_maps: 0.033165, reader_cost: 0.06555 s, batch_cost: 0.68054 s, samples: 160, ips: 23.51069\n",
      "[2022/02/27 11:56:37] root INFO: epoch: [1/1], iter: 4530, lr: 0.001000, loss: 0.358566, loss_shrink_maps: 0.157839, loss_threshold_maps: 0.164119, loss_binary_maps: 0.031764, reader_cost: 0.04143 s, batch_cost: 0.61063 s, samples: 160, ips: 26.20229\n",
      "[2022/02/27 11:56:44] root INFO: epoch: [1/1], iter: 4540, lr: 0.001000, loss: 0.343346, loss_shrink_maps: 0.151321, loss_threshold_maps: 0.162337, loss_binary_maps: 0.030140, reader_cost: 0.10693 s, batch_cost: 0.69758 s, samples: 160, ips: 22.93642\n",
      "[2022/02/27 11:56:51] root INFO: epoch: [1/1], iter: 4550, lr: 0.001000, loss: 0.348399, loss_shrink_maps: 0.151778, loss_threshold_maps: 0.164368, loss_binary_maps: 0.030361, reader_cost: 0.04298 s, batch_cost: 0.66266 s, samples: 160, ips: 24.14529\n",
      "[2022/02/27 11:56:58] root INFO: epoch: [1/1], iter: 4560, lr: 0.001000, loss: 0.361138, loss_shrink_maps: 0.159591, loss_threshold_maps: 0.168973, loss_binary_maps: 0.031883, reader_cost: 0.04449 s, batch_cost: 0.61655 s, samples: 160, ips: 25.95079\n",
      "[2022/02/27 11:57:04] root INFO: epoch: [1/1], iter: 4570, lr: 0.001000, loss: 0.351959, loss_shrink_maps: 0.149352, loss_threshold_maps: 0.167416, loss_binary_maps: 0.029935, reader_cost: 0.04518 s, batch_cost: 0.63210 s, samples: 160, ips: 25.31231\n",
      "[2022/02/27 11:57:11] root INFO: epoch: [1/1], iter: 4580, lr: 0.001000, loss: 0.346252, loss_shrink_maps: 0.150126, loss_threshold_maps: 0.164549, loss_binary_maps: 0.029935, reader_cost: 0.04259 s, batch_cost: 0.66629 s, samples: 160, ips: 24.01341\n",
      "[2022/02/27 11:57:18] root INFO: epoch: [1/1], iter: 4590, lr: 0.001000, loss: 0.350460, loss_shrink_maps: 0.155296, loss_threshold_maps: 0.160747, loss_binary_maps: 0.031017, reader_cost: 0.08419 s, batch_cost: 0.68085 s, samples: 160, ips: 23.50016\n",
      "[2022/02/27 11:57:24] root INFO: epoch: [1/1], iter: 4600, lr: 0.001000, loss: 0.359460, loss_shrink_maps: 0.160289, loss_threshold_maps: 0.169163, loss_binary_maps: 0.032029, reader_cost: 0.09357 s, batch_cost: 0.69237 s, samples: 160, ips: 23.10901\n",
      "[2022/02/27 11:57:31] root INFO: epoch: [1/1], iter: 4610, lr: 0.001000, loss: 0.377928, loss_shrink_maps: 0.169281, loss_threshold_maps: 0.169948, loss_binary_maps: 0.033500, reader_cost: 0.11476 s, batch_cost: 0.65556 s, samples: 160, ips: 24.40643\n",
      "[2022/02/27 11:57:38] root INFO: epoch: [1/1], iter: 4620, lr: 0.001000, loss: 0.390264, loss_shrink_maps: 0.174684, loss_threshold_maps: 0.179051, loss_binary_maps: 0.034876, reader_cost: 0.04346 s, batch_cost: 0.65118 s, samples: 160, ips: 24.57080\n",
      "[2022/02/27 11:57:45] root INFO: epoch: [1/1], iter: 4630, lr: 0.001000, loss: 0.393486, loss_shrink_maps: 0.175633, loss_threshold_maps: 0.184256, loss_binary_maps: 0.034912, reader_cost: 0.06551 s, batch_cost: 0.65946 s, samples: 160, ips: 24.26216\n",
      "[2022/02/27 11:57:51] root INFO: epoch: [1/1], iter: 4640, lr: 0.001000, loss: 0.376045, loss_shrink_maps: 0.162213, loss_threshold_maps: 0.182461, loss_binary_maps: 0.031997, reader_cost: 0.04450 s, batch_cost: 0.67516 s, samples: 160, ips: 23.69792\n",
      "[2022/02/27 11:57:58] root INFO: epoch: [1/1], iter: 4650, lr: 0.001000, loss: 0.365022, loss_shrink_maps: 0.156612, loss_threshold_maps: 0.187196, loss_binary_maps: 0.031322, reader_cost: 0.04486 s, batch_cost: 0.65165 s, samples: 160, ips: 24.55290\n",
      "[2022/02/27 11:58:04] root INFO: epoch: [1/1], iter: 4660, lr: 0.001000, loss: 0.367232, loss_shrink_maps: 0.159063, loss_threshold_maps: 0.179115, loss_binary_maps: 0.031525, reader_cost: 0.06230 s, batch_cost: 0.64948 s, samples: 160, ips: 24.63525\n",
      "[2022/02/27 11:58:11] root INFO: epoch: [1/1], iter: 4670, lr: 0.001000, loss: 0.356737, loss_shrink_maps: 0.159958, loss_threshold_maps: 0.168202, loss_binary_maps: 0.031914, reader_cost: 0.06290 s, batch_cost: 0.64862 s, samples: 160, ips: 24.66792\n",
      "[2022/02/27 11:58:18] root INFO: epoch: [1/1], iter: 4680, lr: 0.001000, loss: 0.354170, loss_shrink_maps: 0.159463, loss_threshold_maps: 0.160233, loss_binary_maps: 0.031970, reader_cost: 0.04448 s, batch_cost: 0.65955 s, samples: 160, ips: 24.25889\n",
      "[2022/02/27 11:58:24] root INFO: epoch: [1/1], iter: 4690, lr: 0.001000, loss: 0.345373, loss_shrink_maps: 0.154804, loss_threshold_maps: 0.158820, loss_binary_maps: 0.030992, reader_cost: 0.08783 s, batch_cost: 0.67578 s, samples: 160, ips: 23.67649\n",
      "[2022/02/27 11:58:31] root INFO: epoch: [1/1], iter: 4700, lr: 0.001000, loss: 0.348984, loss_shrink_maps: 0.155573, loss_threshold_maps: 0.161341, loss_binary_maps: 0.031062, reader_cost: 0.11666 s, batch_cost: 0.68549 s, samples: 160, ips: 23.34102\n",
      "[2022/02/27 11:58:38] root INFO: epoch: [1/1], iter: 4710, lr: 0.001000, loss: 0.357642, loss_shrink_maps: 0.155855, loss_threshold_maps: 0.169537, loss_binary_maps: 0.030921, reader_cost: 0.04080 s, batch_cost: 0.65530 s, samples: 160, ips: 24.41613\n",
      "[2022/02/27 11:58:44] root INFO: epoch: [1/1], iter: 4720, lr: 0.001000, loss: 0.337894, loss_shrink_maps: 0.154490, loss_threshold_maps: 0.154604, loss_binary_maps: 0.030681, reader_cost: 0.04079 s, batch_cost: 0.64147 s, samples: 160, ips: 24.94288\n",
      "[2022/02/27 11:58:51] root INFO: epoch: [1/1], iter: 4730, lr: 0.001000, loss: 0.335953, loss_shrink_maps: 0.151988, loss_threshold_maps: 0.152177, loss_binary_maps: 0.030259, reader_cost: 0.06405 s, batch_cost: 0.66265 s, samples: 160, ips: 24.14549\n",
      "[2022/02/27 11:58:58] root INFO: epoch: [1/1], iter: 4740, lr: 0.001000, loss: 0.354990, loss_shrink_maps: 0.160278, loss_threshold_maps: 0.158155, loss_binary_maps: 0.031749, reader_cost: 0.12667 s, batch_cost: 0.67515 s, samples: 160, ips: 23.69829\n",
      "[2022/02/27 11:59:05] root INFO: epoch: [1/1], iter: 4750, lr: 0.001000, loss: 0.361103, loss_shrink_maps: 0.163804, loss_threshold_maps: 0.162784, loss_binary_maps: 0.032405, reader_cost: 0.12337 s, batch_cost: 0.70843 s, samples: 160, ips: 22.58509\n",
      "[2022/02/27 11:59:12] root INFO: epoch: [1/1], iter: 4760, lr: 0.001000, loss: 0.361103, loss_shrink_maps: 0.163958, loss_threshold_maps: 0.160579, loss_binary_maps: 0.032572, reader_cost: 0.06734 s, batch_cost: 0.67401 s, samples: 160, ips: 23.73843\n",
      "[2022/02/27 11:59:19] root INFO: epoch: [1/1], iter: 4770, lr: 0.001000, loss: 0.353299, loss_shrink_maps: 0.154060, loss_threshold_maps: 0.166397, loss_binary_maps: 0.030652, reader_cost: 0.08730 s, batch_cost: 0.66965 s, samples: 160, ips: 23.89298\n",
      "[2022/02/27 11:59:25] root INFO: epoch: [1/1], iter: 4780, lr: 0.001000, loss: 0.343345, loss_shrink_maps: 0.154060, loss_threshold_maps: 0.158663, loss_binary_maps: 0.030652, reader_cost: 0.03969 s, batch_cost: 0.62303 s, samples: 160, ips: 25.68112\n",
      "[2022/02/27 11:59:29] root INFO: epoch: [1/1], iter: 4788, lr: 0.001000, loss: 0.360249, loss_shrink_maps: 0.163697, loss_threshold_maps: 0.166689, loss_binary_maps: 0.032528, reader_cost: 0.03797 s, batch_cost: 0.44429 s, samples: 124, ips: 27.90972\n",
      "[2022/02/27 11:59:30] root INFO: save model in ./output/db_mv3/latest\n",
      "[2022/02/27 11:59:30] root INFO: best metric, hmean: 0.9583599601237188, precision: 0.9388491010166775, recall: 0.9786989662733633, fps: 29.135882279545996, best_epoch: 1\n"
     ]
    }
   ],
   "source": [
    "# 单机单卡训练 mv3_db 模型\r\n",
    "!python  tools/train.py -c configs/det/det_mv3_db.yml \\\r\n",
    "     -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained\r\n",
    "\r\n",
    "# 单机多卡训练，通过 --gpus 参数设置使用的GPU ID\r\n",
    "# !python -m paddle.distributed.launch --gpus '0' tools/train.py -c configs/det/det_mv3_db.yml \\\r\n",
    "#      -o Global.pretrained_model=./pretrain_models/MobileNetV3_large_x0_5_pretrained"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "上述指令中，通过-c 选择训练使用`configs/det/det_mv3_db.yml`配置文件。 有关配置文件的详细解释，请参考[链接](https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.3/doc/doc_ch/config.md)。\n",
    "\n",
    "您也可以通过-o参数在不需要修改yml文件的情况下，改变训练的参数，比如，调整训练的学习率为0.0001\n",
    "\n",
    "`!python tools/train.py -c configs/det/det_mv3_db.yml -o Optimizer.base_lr=0.0001`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "在paddleOCR/configs/det/det_mv3_db.yml中修改\n",
    "\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/466bd7fbb88f4f3f9a4fb1acc4df5154f9e5122122ae4b8fa841a471338b8e3a)\n",
    "  \n",
    "  \n",
    "\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/796d9acd308f411a8665711a1ab1f1d8264051960953497a83dfb2e36a54e52b)\n",
    "\n",
    "\n",
    "\n",
    "eval\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/1349be1b1c5640b5a31b27e0b77055138922e6ea73234171bb48996644235ce0)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 5.2 训练识别模型\n",
    "如果您是在自己的数据集上训练的模型，并且调整了中文字符的字典文件，请注意修改配置文件configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml中的character_dict_path是否是所需要的字典文件。同时修改Train和Eval的图片路径data_dir和标签路径label_file_list。\n",
    "\n",
    "同检测模型，如果您安装的是cpu版本，请将配置文件中的 use_gpu 字段修改为false"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# \r\n",
    "!cp /home/aistudio/dataset/dict.txt /home/aistudio/word_dict.txt\r\n",
    "# !tree /home/aistudio/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "### 1.替换词典 并调整epoch-num数量\n",
    "为了快速出现结果，可以减少epoch-num数量\n",
    "修改./configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml文件\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/1e0ca2fa03664e4585648805ce74187147f3b199d13f4ad9bb84d7f4b47cfe8a)\n",
    "\n",
    "\n",
    "此处需要针对车牌可能出现的文字，生成一个新的word_dict.txt 这个文件已经在上面代码生成，可以通过cp命令拷贝到指定路径下 ，需要注意的是，每个文字占据一行，为了文档阅读方便，下面放在了一行中  \n",
    "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789皖沪津渝冀晋蒙辽吉黑苏浙京闽赣鲁豫鄂湘粤桂琼川贵云西陕甘青宁新\n",
    "代码为  \n",
    "!cp /home/aistudio/dataset/dict.txt /home/aistudio/word_dict.txt  \n",
    "!tree /home/aistudio/  \n",
    "\n",
    "修改./configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml文件，内容如下：    \n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/6b01a5648dfa49b1b223f2db6ebff15cf159174fa4f74dbea23205a4be54f7ea)\n",
    "\n",
    "\n",
    "\n",
    "### 2.修改train  \n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/fec684a9d32e4c43884983f7285945904cbc2dedfe4d4cd7895b805e8cd34641)\n",
    "对应的识别标签文件内容为：  \n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/4258829cd67e4d829f0b3be770dc9c7df97e7f1fd0d94be4a910c36f880b3d4c)\n",
    "\n",
    "\n",
    "\n",
    "### 3.修改eval  \n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/12d60dd0cfea441cb34c1a0c39b2bcf1c1f23d255d5840e9aa1d3ce95bccc242)\n",
    "对应的识别标签文件内容为：  \n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/e45c78b9b56f4d17b43409a513f4dbdb83fe553a6d02423ca6dc67b526149115)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2022/02/27 13:29:19] root INFO: Architecture : \n",
      "[2022/02/27 13:29:19] root INFO:     Backbone : \n",
      "[2022/02/27 13:29:19] root INFO:         model_name : small\n",
      "[2022/02/27 13:29:19] root INFO:         name : MobileNetV3\n",
      "[2022/02/27 13:29:19] root INFO:         scale : 0.5\n",
      "[2022/02/27 13:29:19] root INFO:         small_stride : [1, 2, 2, 2]\n",
      "[2022/02/27 13:29:19] root INFO:     Head : \n",
      "[2022/02/27 13:29:19] root INFO:         fc_decay : 1e-05\n",
      "[2022/02/27 13:29:19] root INFO:         name : CTCHead\n",
      "[2022/02/27 13:29:19] root INFO:     Neck : \n",
      "[2022/02/27 13:29:19] root INFO:         encoder_type : rnn\n",
      "[2022/02/27 13:29:19] root INFO:         hidden_size : 48\n",
      "[2022/02/27 13:29:19] root INFO:         name : SequenceEncoder\n",
      "[2022/02/27 13:29:19] root INFO:     Transform : None\n",
      "[2022/02/27 13:29:19] root INFO:     algorithm : CRNN\n",
      "[2022/02/27 13:29:19] root INFO:     model_type : rec\n",
      "[2022/02/27 13:29:19] root INFO: Eval : \n",
      "[2022/02/27 13:29:19] root INFO:     dataset : \n",
      "[2022/02/27 13:29:19] root INFO:         data_dir : /home/aistudio\n",
      "[2022/02/27 13:29:19] root INFO:         label_file_list : ['/home/aistudio/dataset/dev_rec.txt']\n",
      "[2022/02/27 13:29:19] root INFO:         name : SimpleDataSet\n",
      "[2022/02/27 13:29:19] root INFO:         transforms : \n",
      "[2022/02/27 13:29:19] root INFO:             DecodeImage : \n",
      "[2022/02/27 13:29:19] root INFO:                 channel_first : False\n",
      "[2022/02/27 13:29:19] root INFO:                 img_mode : BGR\n",
      "[2022/02/27 13:29:19] root INFO:             CTCLabelEncode : None\n",
      "[2022/02/27 13:29:19] root INFO:             RecResizeImg : \n",
      "[2022/02/27 13:29:19] root INFO:                 image_shape : [3, 32, 320]\n",
      "[2022/02/27 13:29:19] root INFO:             KeepKeys : \n",
      "[2022/02/27 13:29:19] root INFO:                 keep_keys : ['image', 'label', 'length']\n",
      "[2022/02/27 13:29:19] root INFO:     loader : \n",
      "[2022/02/27 13:29:19] root INFO:         batch_size_per_card : 256\n",
      "[2022/02/27 13:29:19] root INFO:         drop_last : False\n",
      "[2022/02/27 13:29:19] root INFO:         num_workers : 8\n",
      "[2022/02/27 13:29:19] root INFO:         shuffle : False\n",
      "[2022/02/27 13:29:19] root INFO: Global : \n",
      "[2022/02/27 13:29:19] root INFO:     cal_metric_during_train : True\n",
      "[2022/02/27 13:29:19] root INFO:     character_dict_path : ../word_dict.txt\n",
      "[2022/02/27 13:29:19] root INFO:     checkpoints : None\n",
      "[2022/02/27 13:29:19] root INFO:     debug : False\n",
      "[2022/02/27 13:29:19] root INFO:     distributed : False\n",
      "[2022/02/27 13:29:19] root INFO:     epoch_num : 1\n",
      "[2022/02/27 13:29:19] root INFO:     eval_batch_step : [0, 2000]\n",
      "[2022/02/27 13:29:19] root INFO:     infer_img : doc/imgs_words/ch/word_1.jpg\n",
      "[2022/02/27 13:29:19] root INFO:     infer_mode : False\n",
      "[2022/02/27 13:29:19] root INFO:     log_smooth_window : 20\n",
      "[2022/02/27 13:29:19] root INFO:     max_text_length : 25\n",
      "[2022/02/27 13:29:19] root INFO:     pretrained_model : None\n",
      "[2022/02/27 13:29:19] root INFO:     print_batch_step : 10\n",
      "[2022/02/27 13:29:19] root INFO:     save_epoch_step : 3\n",
      "[2022/02/27 13:29:19] root INFO:     save_inference_dir : None\n",
      "[2022/02/27 13:29:19] root INFO:     save_model_dir : ./output/rec_chinese_lite_v2.0\n",
      "[2022/02/27 13:29:19] root INFO:     save_res_path : ./output/rec/predicts_chinese_lite_v2.0.txt\n",
      "[2022/02/27 13:29:19] root INFO:     use_gpu : True\n",
      "[2022/02/27 13:29:19] root INFO:     use_space_char : True\n",
      "[2022/02/27 13:29:19] root INFO:     use_visualdl : False\n",
      "[2022/02/27 13:29:19] root INFO: Loss : \n",
      "[2022/02/27 13:29:19] root INFO:     name : CTCLoss\n",
      "[2022/02/27 13:29:19] root INFO: Metric : \n",
      "[2022/02/27 13:29:19] root INFO:     main_indicator : acc\n",
      "[2022/02/27 13:29:19] root INFO:     name : RecMetric\n",
      "[2022/02/27 13:29:19] root INFO: Optimizer : \n",
      "[2022/02/27 13:29:19] root INFO:     beta1 : 0.9\n",
      "[2022/02/27 13:29:19] root INFO:     beta2 : 0.999\n",
      "[2022/02/27 13:29:19] root INFO:     lr : \n",
      "[2022/02/27 13:29:19] root INFO:         learning_rate : 0.001\n",
      "[2022/02/27 13:29:19] root INFO:         name : Cosine\n",
      "[2022/02/27 13:29:19] root INFO:         warmup_epoch : 5\n",
      "[2022/02/27 13:29:19] root INFO:     name : Adam\n",
      "[2022/02/27 13:29:19] root INFO:     regularizer : \n",
      "[2022/02/27 13:29:19] root INFO:         factor : 1e-05\n",
      "[2022/02/27 13:29:19] root INFO:         name : L2\n",
      "[2022/02/27 13:29:19] root INFO: PostProcess : \n",
      "[2022/02/27 13:29:19] root INFO:     name : CTCLabelDecode\n",
      "[2022/02/27 13:29:19] root INFO: Train : \n",
      "[2022/02/27 13:29:19] root INFO:     dataset : \n",
      "[2022/02/27 13:29:19] root INFO:         data_dir : /home/aistudio\n",
      "[2022/02/27 13:29:19] root INFO:         label_file_list : ['/home/aistudio/dataset/train_rec.txt']\n",
      "[2022/02/27 13:29:19] root INFO:         name : SimpleDataSet\n",
      "[2022/02/27 13:29:19] root INFO:         transforms : \n",
      "[2022/02/27 13:29:19] root INFO:             DecodeImage : \n",
      "[2022/02/27 13:29:19] root INFO:                 channel_first : False\n",
      "[2022/02/27 13:29:19] root INFO:                 img_mode : BGR\n",
      "[2022/02/27 13:29:19] root INFO:             RecAug : None\n",
      "[2022/02/27 13:29:19] root INFO:             CTCLabelEncode : None\n",
      "[2022/02/27 13:29:19] root INFO:             RecResizeImg : \n",
      "[2022/02/27 13:29:19] root INFO:                 image_shape : [3, 32, 320]\n",
      "[2022/02/27 13:29:19] root INFO:             KeepKeys : \n",
      "[2022/02/27 13:29:19] root INFO:                 keep_keys : ['image', 'label', 'length']\n",
      "[2022/02/27 13:29:19] root INFO:     loader : \n",
      "[2022/02/27 13:29:19] root INFO:         batch_size_per_card : 256\n",
      "[2022/02/27 13:29:19] root INFO:         drop_last : True\n",
      "[2022/02/27 13:29:19] root INFO:         num_workers : 8\n",
      "[2022/02/27 13:29:19] root INFO:         shuffle : True\n",
      "[2022/02/27 13:29:19] root INFO: profiler_options : None\n",
      "[2022/02/27 13:29:19] root INFO: train with paddle 2.2.2 and device CUDAPlace(0)\n",
      "[2022/02/27 13:29:19] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/train_rec.txt']\n",
      "[2022/02/27 13:29:20] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/dev_rec.txt']\n",
      "W0227 13:29:20.105746  8772 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0227 13:29:20.111069  8772 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n",
      "[2022/02/27 13:29:24] root INFO: train from scratch\n",
      "[2022/02/27 13:29:24] root INFO: train dataloader has 299 iters\n",
      "[2022/02/27 13:29:24] root INFO: valid dataloader has 75 iters\n",
      "[2022/02/27 13:29:24] root INFO: During the training process, after the 0th iteration, an evaluation is run every 2000 iterations\n",
      "[2022/02/27 13:29:24] root INFO: Initialize indexs of datasets:['/home/aistudio/dataset/train_rec.txt']\n",
      "[2022/02/27 13:29:50] root INFO: epoch: [1/1], iter: 10, lr: 0.000003, loss: 295.146545, acc: 0.000000, norm_edit_dis: 0.044291, reader_cost: 2.03845 s, batch_cost: 2.33167 s, samples: 2816, ips: 120.77177\n",
      "[2022/02/27 13:30:01] root INFO: epoch: [1/1], iter: 20, lr: 0.000007, loss: 294.882996, acc: 0.000000, norm_edit_dis: 0.043206, reader_cost: 0.81915 s, batch_cost: 1.03133 s, samples: 2560, ips: 248.22259\n",
      "[2022/02/27 13:30:13] root INFO: epoch: [1/1], iter: 30, lr: 0.000014, loss: 293.983887, acc: 0.000000, norm_edit_dis: 0.041567, reader_cost: 0.81873 s, batch_cost: 1.02541 s, samples: 2560, ips: 249.65684\n",
      "[2022/02/27 13:30:30] root INFO: epoch: [1/1], iter: 40, lr: 0.000020, loss: 292.441528, acc: 0.000000, norm_edit_dis: 0.043254, reader_cost: 1.34110 s, batch_cost: 1.54716 s, samples: 2560, ips: 165.46460\n",
      "[2022/02/27 13:30:48] root INFO: epoch: [1/1], iter: 50, lr: 0.000027, loss: 289.970520, acc: 0.000000, norm_edit_dis: 0.044808, reader_cost: 1.34809 s, batch_cost: 1.57428 s, samples: 2560, ips: 162.61360\n",
      "[2022/02/27 13:31:00] root INFO: epoch: [1/1], iter: 60, lr: 0.000034, loss: 286.245789, acc: 0.000000, norm_edit_dis: 0.043085, reader_cost: 0.89817 s, batch_cost: 1.09277 s, samples: 2560, ips: 234.26735\n",
      "[2022/02/27 13:31:13] root INFO: epoch: [1/1], iter: 70, lr: 0.000040, loss: 280.145233, acc: 0.000000, norm_edit_dis: 0.013955, reader_cost: 1.02569 s, batch_cost: 1.22310 s, samples: 2560, ips: 209.30475\n",
      "[2022/02/27 13:31:26] root INFO: epoch: [1/1], iter: 80, lr: 0.000047, loss: 270.520111, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.96599 s, batch_cost: 1.18196 s, samples: 2560, ips: 216.58873\n",
      "[2022/02/27 13:31:56] root INFO: epoch: [1/1], iter: 90, lr: 0.000054, loss: 256.269714, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 2.70135 s, batch_cost: 2.88116 s, samples: 2560, ips: 88.85309\n",
      "[2022/02/27 13:32:07] root INFO: epoch: [1/1], iter: 100, lr: 0.000061, loss: 236.076111, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.79749 s, batch_cost: 0.96689 s, samples: 2560, ips: 264.76747\n",
      "[2022/02/27 13:32:19] root INFO: epoch: [1/1], iter: 110, lr: 0.000067, loss: 209.807953, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.95951 s, batch_cost: 1.13656 s, samples: 2560, ips: 225.24135\n",
      "[2022/02/27 13:32:30] root INFO: epoch: [1/1], iter: 120, lr: 0.000074, loss: 177.506973, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.80073 s, batch_cost: 1.00408 s, samples: 2560, ips: 254.95910\n",
      "[2022/02/27 13:32:52] root INFO: epoch: [1/1], iter: 130, lr: 0.000081, loss: 142.052979, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.77950 s, batch_cost: 2.05153 s, samples: 2560, ips: 124.78491\n",
      "[2022/02/27 13:33:03] root INFO: epoch: [1/1], iter: 140, lr: 0.000087, loss: 108.101181, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.69874 s, batch_cost: 0.93235 s, samples: 2560, ips: 274.57542\n",
      "[2022/02/27 13:33:14] root INFO: epoch: [1/1], iter: 150, lr: 0.000094, loss: 80.262497, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.80116 s, batch_cost: 1.02440 s, samples: 2560, ips: 249.90146\n",
      "[2022/02/27 13:33:40] root INFO: epoch: [1/1], iter: 160, lr: 0.000101, loss: 60.202335, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 2.20584 s, batch_cost: 2.43095 s, samples: 2560, ips: 105.30857\n",
      "[2022/02/27 13:33:54] root INFO: epoch: [1/1], iter: 170, lr: 0.000107, loss: 47.386131, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.08843 s, batch_cost: 1.25897 s, samples: 2560, ips: 203.34068\n",
      "[2022/02/27 13:34:05] root INFO: epoch: [1/1], iter: 180, lr: 0.000114, loss: 39.569038, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.75097 s, batch_cost: 0.96141 s, samples: 2560, ips: 266.27462\n",
      "[2022/02/27 13:34:16] root INFO: epoch: [1/1], iter: 190, lr: 0.000121, loss: 35.046722, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.82874 s, batch_cost: 1.02063 s, samples: 2560, ips: 250.82665\n",
      "[2022/02/27 13:34:35] root INFO: epoch: [1/1], iter: 200, lr: 0.000127, loss: 32.169273, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.56966 s, batch_cost: 1.78381 s, samples: 2560, ips: 143.51297\n",
      "[2022/02/27 13:34:48] root INFO: epoch: [1/1], iter: 210, lr: 0.000134, loss: 30.409611, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.90896 s, batch_cost: 1.12485 s, samples: 2560, ips: 227.58580\n",
      "[2022/02/27 13:35:00] root INFO: epoch: [1/1], iter: 220, lr: 0.000141, loss: 29.120668, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.91865 s, batch_cost: 1.12240 s, samples: 2560, ips: 228.08229\n",
      "[2022/02/27 13:35:12] root INFO: epoch: [1/1], iter: 230, lr: 0.000147, loss: 28.269032, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.87602 s, batch_cost: 1.07965 s, samples: 2560, ips: 237.11389\n",
      "[2022/02/27 13:35:31] root INFO: epoch: [1/1], iter: 240, lr: 0.000154, loss: 27.446142, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.54686 s, batch_cost: 1.73685 s, samples: 2560, ips: 147.39348\n",
      "[2022/02/27 13:35:42] root INFO: epoch: [1/1], iter: 250, lr: 0.000161, loss: 26.963045, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.84691 s, batch_cost: 1.04972 s, samples: 2560, ips: 243.87524\n",
      "[2022/02/27 13:35:59] root INFO: epoch: [1/1], iter: 260, lr: 0.000168, loss: 26.487423, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.27675 s, batch_cost: 1.50697 s, samples: 2560, ips: 169.87678\n",
      "[2022/02/27 13:36:12] root INFO: epoch: [1/1], iter: 270, lr: 0.000174, loss: 26.126907, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.98621 s, batch_cost: 1.20395 s, samples: 2560, ips: 212.63406\n",
      "[2022/02/27 13:36:27] root INFO: epoch: [1/1], iter: 280, lr: 0.000181, loss: 25.834969, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 1.11003 s, batch_cost: 1.35636 s, samples: 2560, ips: 188.74080\n",
      "[2022/02/27 13:36:39] root INFO: epoch: [1/1], iter: 290, lr: 0.000188, loss: 25.548759, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.93392 s, batch_cost: 1.11133 s, samples: 2560, ips: 230.35376\n",
      "[2022/02/27 13:36:45] root INFO: epoch: [1/1], iter: 298, lr: 0.000193, loss: 25.365919, acc: 0.000000, norm_edit_dis: 0.000004, reader_cost: 0.38311 s, batch_cost: 0.47763 s, samples: 2048, ips: 428.78351\n",
      "[2022/02/27 13:36:45] root INFO: save model in ./output/rec_chinese_lite_v2.0/latest\n",
      "[2022/02/27 13:36:45] root INFO: best metric, acc: 0\n"
     ]
    }
   ],
   "source": [
    "# GPU训练 支持单卡，多卡训练\r\n",
    "#单卡训练（训练周期长，不建议）\r\n",
    "!python tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml\r\n",
    "\r\n",
    "#多卡训练，通过--gpus参数指定卡号\r\n",
    "# !python -m paddle.distributed.launch --gpus '0,1,2,3'  tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "PaddleOCR支持训练和评估交替进行, 可以在rec_chinese_lite_train_v2.0.yml中修改 eval_batch_step 设置评估频率，默认每500个iter评估一次。  \n",
    "评估过程中默认将最佳acc模型，保存为 output/rec_CRNN/best_accuracy。如果验证集很大，测试将会比较耗时，建议减少评估次数，或训练完再进行评估。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 6模型导出\n",
    "将训练好的模型转换成inference模型只需要运行如下命令："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W0227 14:11:14.219017 10481 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0227 14:11:14.224222 10481 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n",
      "[2022/02/27 14:11:18] root INFO: load pretrain successful from ./output/db_mv3/best_accuracy\n",
      "[2022/02/27 14:11:21] root INFO: inference model is saved to ./inference/db_mv3/inference\n"
     ]
    }
   ],
   "source": [
    "# 导出检测模型\r\n",
    "!python tools/export_model.py \\\r\n",
    "        -c configs/det/det_mv3_db.yml \\\r\n",
    "        -o Global.pretrained_model=./output/db_mv3/best_accuracy \\\r\n",
    "        Global.save_inference_dir=./inference/db_mv3/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W0227 14:14:52.370929 10679 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 10.1, Runtime API Version: 10.1\n",
      "W0227 14:14:52.376241 10679 device_context.cc:465] device: 0, cuDNN Version: 7.6.\n",
      "[2022/02/27 14:14:56] root INFO: resume from ./output/rec_chinese_lite_v2.0/latest\n",
      "[2022/02/27 14:14:58] root INFO: inference model is saved to ./inference/rec_chinese_lite_v2.0/inference\n"
     ]
    }
   ],
   "source": [
    "# 导出识别模型\r\n",
    "# !python tools/export_model.py \\\r\n",
    "#         -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml \\\r\n",
    "#         -o Global.checkpoints=./output/rec_chinese_lite_v2.0/best_accuracy \\\r\n",
    "#         Global.save_inference_dir=./inference/rec_chinese_lite_v2.0/\r\n",
    "\r\n",
    "\r\n",
    "# 如果 出现AssertionError: The ./output/rec_chinese_lite_v2.0/best_accuracy.pdparams does not exists! 的错误\r\n",
    "# 可以将 Global.checkpoints=./output/rec_chinese_lite_v2.0/best_accuracy 修改为\r\n",
    "# Global.checkpoints=./output/rec_chinese_lite_v2.0/latest\r\n",
    "!python tools/export_model.py \\\r\n",
    "        -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml \\\r\n",
    "        -o Global.checkpoints=./output/rec_chinese_lite_v2.0/latest \\\r\n",
    "        Global.save_inference_dir=./inference/rec_chinese_lite_v2.0/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "其中：\n",
    "\n",
    "-c 后面设置训练算法的yml配置文件  \n",
    "-o 配置可选参数  \n",
    "Global.pretrained_model 参数设置待转换的训练模型地址，不用添加文件后缀 .pdmodel，.pdopt或.pdparams。  \n",
    "Global.save_inference_dir参数设置转换的模型将保存的地址。  \n",
    "转inference模型时，使用的配置文件和训练时使用的配置文件相同。另外，还需要设置配置文件中的Global.pretrained_model参数，其指向训练中保存的模型参数文件。 转换成功后，在模型保存目录下有三个文件：  \n",
    " >/inference/*/  \n",
    "    ├── inference.pdiparams         # inference模型的参数文件  \n",
    "    ├── inference.pdiparams.info    # inference模型的参数信息，可忽略  \n",
    "    └── inference.pdmodel           # inference模型的program文件  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "## 7.模型推理\n",
    "在执行预测时，  \n",
    "需要通过参数image_dir指定单张图像或者图像集合的路径、  \n",
    "参数det_model_dir,cls_model_dir和rec_model_dir分别指定检测，方向分类和识别的inference模型路径。  \n",
    "参数use_angle_cls用于控制是否启用方向分类模型。  \n",
    "如果训练时修改了文本的字典，在使用inference模型预测时，需要通过--rec_char_dict_path指定使用的字典路径，并且设置 rec_char_type=ch。  \n",
    "可视化识别结果默认保存到 ./inference_results 文件夹里面。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "在/home/aistudio中放置一张测试图片 \n",
    "\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/247bc5d96b754d048dd665c9465306d8354a281df2d545f1a272bbf302ba90c9)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/aistudio/PaddleOCR\n",
      "[2022/02/27 14:32:52] root DEBUG: dt_boxes num : 1, elapse : 2.6376569271087646\n",
      "[2022/02/27 14:32:52] root DEBUG: rec_res num  : 1, elapse : 0.007417917251586914\n",
      "[2022/02/27 14:32:52] root DEBUG: 0  Predict time of ../test.jpg: 2.646s\n",
      "[2022/02/27 14:32:52] root DEBUG: The visualized image saved in ./inference_results/test.jpg\n",
      "[2022/02/27 14:32:52] root INFO: The predict total time is 2.662785053253174\n"
     ]
    }
   ],
   "source": [
    "%cd ~/PaddleOCR\r\n",
    "\r\n",
    "!python3 tools/infer/predict_system.py \\\r\n",
    "    --image_dir=\"../test.jpg\" \\\r\n",
    "    --det_model_dir=\"./inference/db_mv3/\" \\\r\n",
    "    --rec_model_dir=\"./inference/rec_chinese_lite_v2.0/\" \\\r\n",
    "    --rec_char_dict_path=\"../word_dict.txt\" \\\r\n",
    "    #--rec_image_shape=\"3, 32, 320\" \\\r\n",
    "    --rec_char_type=\"ch\" \\\r\n",
    "    --use_angle_cls=False \\\r\n",
    "    --output=../output/table \\\r\n",
    "    --vis_font_path=./doc/fonts/simfang.ttf     \r\n",
    "\r\n",
    "# %cd ~/PaddleOCR\r\n",
    "# !python3 tools/infer/predict_system.py \\\r\n",
    "#     --image_dir=\"./doc/imgs/00018069.jpg\" \\\r\n",
    "#     --det_model_dir=\"./inference/db_mv3/\" \\\r\n",
    "#     --rec_model_dir=\"./inference/rec_chinese_lite_v2.0/\" \\\r\n",
    "#     --rec_char_dict_path=\"../word_dict.txt\" \\\r\n",
    "#     --rec_char_type=\"ch\" \\\r\n",
    "#     --use_angle_cls=False \\\r\n",
    "#     --output=../output/table \\\r\n",
    "#     --vis_font_path=./doc/fonts/simfang.ttf  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "### 如果上面的模型没有训练出结果，也没有关系，说明模型不够好，只需要加大训练的次数即可"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "此项目参考【寂寞你快进去】的\"PaddleOCR：车牌识别\"项目，  \n",
    "原项目地址为：https://aistudio.baidu.com/aistudio/projectdetail/739559?channelType=0&channel=0\n",
    "\n",
    "https://aistudio.baidu.com/aistudio/projectdetail/2474969?qq-pf-to=pcqq.c2c&shared=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "py35-paddle1.2.0"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
